Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Doppelt verkettete Liste in C

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.12.2003, 20:14 Uhr
~Pez
Gast


Hallo alle miteinander!
Hab ein gröberes Problem. Hab morgen Test und hab ein kleines Problem mit doppelt verkettete Listen.
Kann mir irgendjemand eventuell ein leichtes kleines Beispiel geben, so dass ich doch noch die Möglichkeit einer Erleuchtung haben könnte?
Wär echt super.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2003, 20:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Im wesentlichen ist das sowas..

C++:
typedef struct {int value; Listelem *next;Listelem *prev;}Listelem;



Jedes Listenelement hat einen zeiger auf seinen vorgänger und seinen nachfolger. Zeigt der Zeiger auf NULL gibt es in diese Richtung keine Elemente mehr....
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.12.2003 um 20:18 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2003, 20:21 Uhr
~Pez
Gast


Irgendwie versteh ich das ja noch. Ich glaub, bei mir happats in der Umsetzung. Wenn ich zum Beispiel die Liste einmal nach Namen und ein anderes Mal nach Note sortier, kann ich mir nimma vorstellen, dass des so einfach geht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.12.2003, 20:26 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


erst erstelltst du mal eine liste

C++:
Listelem startknoten;
startknoten.value = 4711;
startknoten.next= NULL;
startknoten.prev= NULL;



wenn du jetzt ein neues Element hinten anghängst dann lässt du den startknoten.next einfach auf das neue Element zeigen und bei dem neuen element prev auf den startknoten und schon hast du ein neues element eingefügt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.12.2003, 20:30 Uhr
~Pez
Gast


Ich glaub, langsam kommt die Erleuchtung. D.h. im Prinzip brauch ich nicht mehr, als einmal auf das neue Element zeigen zu lassen und einmal das Element auf das zeigen zu lassen.
Richtig?
Bin schon ein wenig begriffsstützig. Kann heut nimma viel aufnehmen.
Bin dir aba dankbar, dass du mir hilfst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.12.2003, 21:23 Uhr
Pablo
Supertux
(Operator)


Ich hab schon das, was @Windalf macht schon gehabt und hatte keine Problem, nur Warnungen, vor allem, wenn man mit malloc arbeitet. Damit sie verschwinden sollte man lieber so tun


C++:
typedef struct __list {int value; struct __list *next; struct __list *prev;}Listelem;


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.12.2003, 23:28 Uhr
virtual
Sexiest Bit alive
(Operator)


@Pablo
Du bist Dir ja im Klaren, daß namen der Form "__irgendwas" hochgradig unportabel sind?

1. Für C/C++: Gemäß Standard sind alle Bezeichner, die mit einem Doppelten Underscore beginnen oder mit einenm Underscore gefolgt von einem Großbuchstaben generell reserviert.
2. Für C++: Darüberhinaus sind bezeichner, die mit einem Underscore und einem Kleinbuchstaben beginnen speziell im globalen Namensraum reserviert.

(Vgl.: C++ Standard, 17.4.3.1.2)

Mag ja sein, daß die underscores cool aussehen, weil sie in den Systemheadern vorkommen, aber das ist dummerweise er einzige Ort, wo man sie so benutzen darf.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.12.2003, 23:33 Uhr
Pablo
Supertux
(Operator)


Also, besser auf __ verzichten?

Danke, das wusste ich nicht!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.12.2003, 08:32 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja. Manche hängen ihre Underscroes einfach an, also zB "list__". Bei og Problem bevorzuge ich pers. durch ein angeängtes "_t" Typedefs kenntelich zu machen, mit einem "_s" Strukturen:

C++:
typedef struct list_s
{
     struct list_s* next;
     struct list_s* prev;
     ...
} list_t;


Der Phantasie sind da ja im Rahmen des Standards kaum Grenzen gesetzt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: