Rumäniens Städte Breitensuche mit matlab

Ich arbeite an einem Projekt, das sich auf rumänische Städte bezieht. Breitensuche:

romania Stadtplan

Ich habe eine Funktion zum Erstellen der Nachbarn:

function [NeighborName PathLength StraightLineDistance] = makeneighbor(x,y,z)
NeighborName=x; 
PathLength=y; % distance from current city to neighbor
StraightLineDistance=z; % i want to use it for a* model

und in meiner 'main.m' habe ich Stadt * und Nachbarn definiert:

clc;clear;
city1='Arad'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Zerind',75,374)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Sibiu',140,253)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Timisoara',118,329)

city2='Zerind'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Oradea',71,380)
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Arad',75,366)
.
.
.
city20='Neamt'
[neighbor_name neighbor_distance straight_line_distance]=makeneighbor('Iasi',87,226)  

jede Zeit vergleicht die Stadt mit Bukarest

if city*=='bucharest'
break;
else
list= add the city to list.

Für das nächste Mal muss ich seinen Nachbarn mit dem Ziel vergleichen und jedes Mal, wenn city ~ = 'bucharest', diese Stadt zur Liste hinzufügen. Wenn Sie das Ziel gefunden haben, fügen Sie es der Liste hinzu.

Jetzt brauche ich eine Funktion, um Bukarest zu finden und frühere Städte in ein Array zu setzen. Finden Sie automatisch Städte und deren Werte. so was

path1=['arad' 'sibiu' 'fagaras' 'bucharest'];
distance1=[140 99 211];
path2=['arad' 'zerind' 'oradea' 'sibiu' 'fagaras' 'bucharest'];
distance2=[75 71 151 99 211];
path3=['arad' 'zerind' 'oradea' 'sibiu' 'vilcea' 'pitesti' 'bucharest'];
distance3=[75 71 151 80 97 101];
.
.
pathN=[city1:cityN 'bucharest'];
distanceN=[distance1:distanceN]

disp('please explain very simple. im not so expert in matlab, and my primary language is not english. many thanx...')