Hallo Leute,
ich stecke gerade was, alphabetisch sortiert einfügen in eine einfach verkettete Liste, angeht, recht in der Klemme und zwar:
Wir haben eine Aufgabenstellung von der Übungsleitung bekommen, wo wir Buchstabe für Buchstabe in eine Konsole eingeben und diese Buchstaben sollen in eine Leere Liste von Anfang an, alphabetisch sortiert in die Liste eingefügt werden und ich komme da einfach nicht weiter
Ich muss das "Insert" morgen abgeben und ich habe es die ganze Zeit versucht, aber iwie will es nicht in meinen Kopf.
Ich erbitte um Eure Hilfe
Das ist mein bislang geschriebener Code in Delphi:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//first = ^TNode; //Zeiger auf einen Knoten(TNode);
//value = der zuvergleichende und anschließend richtig einsortierte Buchstabe
procedure insert(var first: PNode; Value: string);
var
newNode, tmp, current: PNode;
begin
if first = nil then
add(first, Value) //a
else
begin
add(first, Value); //b-->a
// code-logic...
while (current <> nil) and (Value < current^.Value) do
begin
// ich muss mir den vorigen Zeiger auch merken!
tmp := newNode;
newNode^.Next := current^.Next;
current^.Next := tmp;
end;
end;
end;
|
Liebe Grüße
JP
P.s "add(..)" fügt ein Element ganz vorne an die Liste an!
und es wird zwar ein "string" übergeben, aber es kommen immer nur Buchstaben rein!