Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Listen miteinander verketten?

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
17.07.2007, 18:49 Uhr
~D_Bachmann
Gast


Ich soll ein Netzwerk mittels Listen implementiern.

Ich habe Router in einer Ringliste und ein zugehöriges Subnet als doppelt verkettete Liste folglich definiert.

struct router { router* next,pred;
int ip[4];
subnet* clients; };

struct subnet {subnet* next,pred;
int ip[4];
router* node; }


Ich brauche aufjedenfall die Zeiger im Subnet auf den Router und umgekehrt. Wie kriege ich das vernünftig definiert, da der Compiler sowas ja nicht mitmacht ,weil er in diesem Fall den Typ subnet noch nicht kennt. javascript:insert_smiley('')
javascript:insert_smiley('')
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.07.2007, 18:54 Uhr
öni



Klassen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.07.2007, 18:56 Uhr
~D_Bachmann
Gast


Weiß nicht ob das was hilft, aber ohne Klassen zu verwenden wäre es schöner und einfacher.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.07.2007, 18:57 Uhr
öni



schöner nicht nein nur einfach ^^. Ich denke schon das man in der Klasse einen Zeiger auf die Klasse setzen kann, zumindest ist es mir so bekannt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.07.2007, 19:17 Uhr
0xdeadbeef
Gott
(Operator)



C++:
struct subnet;

struct router {
  router *next, *prev;
  int ip[4];
  subnet *clients;
};

struct subnet {
  subnet *next, *prev;
  int ip[4];
  router *node;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 17.07.2007 um 19:18 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.07.2007, 00:21 Uhr
ao

(Operator)


Muss das so gemacht werden, dass die gelisteten Objekte (also Router und Subnet) selber die Verkettungszeiger prev und next enthalten?

Ich weiß, dass das in C-lastigen Vorlesungen so gelehrt wird / wurde, aber vom objektorientierten Ansatz her haben diese Daten im Router- bzw. Subnet-Objekt nichts verloren. Stattdessen implementiert man die Liste als Containerklasse, so dass sie Objekte von jedem Typ aufnehmen kann. Die C++-Standardbibliothek (STL) hat Templates dafür, schau doch mal rein. Stichwort list<T>, vector<T> usw.

Soll das ein C- oder C++-Programm werden?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.07.2007, 00:39 Uhr
0xdeadbeef
Gott
(Operator)


Sieht sehr nach C aus, da kann man das so machen. Auch wenns wohl eigentlich sauberer wäre, die da in einem Wrapper-Struct zu verpacken.

Vom fachlichen her möchte ich noch anmerken, dass ein Subnet eigentlich keinen Router hat - routing tables werden individuell auf jeder Node verwaltet.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.07.2007, 15:58 Uhr
~DBAchmann
Gast


Danke für die schnellen Antworten die einfache Variante oben hat super funktioniert.
 
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: