Ich schreibe eine LinkedList in C, der folgende Code repräsentiert meine Node-Definition.Wie definiert man eine Typedef-Struktur, die Zeiger auf sich selbst enthält?
typedef struct {
int value;
struct Node* next;
struct Node* prev;
} Node;
Ich verstehe (oder denken, dass ich), dass struct Node
nicht das gleiche wie typedef struct Node
. Zugegeben, mein Code kompiliert und läuft so, wie es soll, aber ich bekomme viele Warnungen bei der Zuweisung next
und prev
(Warnung: Zuweisung von inkompatiblen Zeigertyp). Ich vermute, dass das damit zu tun hat, wie ich sie in der Knotenstruktur definiere. Ich hochgeladen die vollständige Quelle here
Also, wenn das in der Tat das Problem ist, wie soll ich definieren next
und prev
innerhalb der typedef struct Node
?
Ich war besorgt, dass dies ein Repost sein könnte, aber konnte nicht ganz finden, was ich suchte. Vielen Dank.
Ihre verknüpfte Liste sieht mir sehr fremdartig aus. Wenn du prev und next hast, warum brauchst du dann Kopf und Schwanz? Finden Sie eine gut verlinkte Liste in c und lernen Sie daraus. Ich würde die Apache-Laufzeitbibliothek empfehlen. Ich denke, es hat eine verknüpfte Liste. – frast
mit Zeigern zu Kopf und Schwanz machen anhängen und vor O (1) anstelle von O (n). Lassen Sie mich wissen, wenn Sie andere Fehler sehen, da dies hauptsächlich eine Übung ist, um meine C-Fähigkeiten nach all den Jahren von Java etwas frisch zu halten. –