Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Warteschange Q » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Warteschange Q
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
evinda
Grünschnabel


Dabei seit: 27.07.2014
Beiträge: 6

Warteschange Q Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!!! Wink

Ich habe eine Frage über die Anwendung des folgenden Algorithmus bei einen Beispiel:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
Breitensuche(G,s)

for each u !=  V \ {s}
     color[u]<-white
     d[u]<-oo
     p[u]<-Ø
color[s]<-gray
d[s]<-0
p[s]<-Ø
Q<-Ø // Q ist eine Warteschlange
Insert(Q,s)
while Q != Ø
       u<-Delete(Q)
       for each v e  Adj(u)
          if color[v]=white then
             color[v]<-gray
             d[v]=d[u]+1
             p[v]<-u
             Insert(Q,v)

       color[u]<-black


code:
1:
2:
3:
4:
5:
6:
7:
8:
Delete(Q)
x<-Q[head[Q]]
if head[Q]=length[Q] then
   head[Q]<-1
else
   head[Q]<-head[Q]+1
return x



Das Beispiel ist das folgende,s. breadth.png



Am Anfang ist es so,s. fi.png



und nach der ersten "for",ist es so,s. search.png



Ich habe nicht verstanden,warum man von Q das s löscht.

Mit der Anweisung u<-Delete(Q),bekommt u den Wert s, und in der Funktion ändert sich die Variable head[Q],beim Hauptprogramm,bleibt sie aber unverändert,oder nicht? :-?

evinda hat diese Bilder (verkleinerte Versionen) angehängt:
fi.png search.png breadth.png

26.08.2014 13:54 evinda ist offline Beiträge von evinda suchen Nehmen Sie evinda in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

RE: Warteschange Q Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo evinda,

Zitat:
Original von evinda
Mit der Anweisung u<-Delete(Q),bekommt u den Wert s, und in der Funktion ändert sich die Variable head[Q],beim Hauptprogramm,bleibt sie aber unverändert,oder nicht? :-?


Hier ist es so, dass die Queue manipuliert wird, so dass sie sich auch im Hauptprogramm ändert (alles Andere ergibt keinen Sinn).

Gruß,

Karlito
27.08.2014 06:18 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
evinda
Grünschnabel


Dabei seit: 27.07.2014
Beiträge: 6

RE: Warteschange Q Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok!!! Vielen Dank!!!! Daumen hoch
31.08.2014 00:02 evinda ist offline Beiträge von evinda suchen Nehmen Sie evinda in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Warteschange Q