hvordan laver jeg en dobbelhægtet liste vha pointere? en dobbelhægtet liste er en liste af struct med 2 pointere hvor man vha 2 andre pointere skal få en række struct'er til at hænge sammen so man kan skrive dem ud både fra den nyest indtastede og fra den først indtastede. jeg kan godt lave den ene vej men hvis jeg prøver at hægte den først indtastede sammen med den forrige igen skriver den bare listen igen og igen og igen ......
du har sikert fejl i din kode, du får nok ikke tildelt prev og next pointer rigtigt. Her er et eksempel jeg lige hurtig har lavet, på hvordan det kan gøres:
// TestMe8.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include "iostream.h"
class Node { public: Node( int nID ) { pNext = NULL; pPrev = NULL; nNodeID = nID; }
// indsæt 3 bag i listen for( int i=1; i<4; i++ ) { pHelper->pNext = new Node(i); // sidste node -> next = ny node pHelper->pNext->pPrev = pHelper; // ny node -> prev = sidste node
pHelper = pHelper->pNext; // pHelper = sidste element i liste
pLast = pHelper; // sidste element i liste }
// indsæt 4 foran for( i=4; i<8; i++ ) { pHelper = new Node(i); // ny node pHelper->pNext = pList; // ny node -> next = list start pHelper->pNext->pPrev = pHelper; // ny node -> next's "-> prev" = den nye node pList = pHelper; // list start = ny node }
chries: Som jeg skrev skal det være en struct og ikke en class jeg skal lave listen med. jpk: Det har du fuldstændig ret i og det er der problemet ligger. hvordan gør jeg det ??
Jeg skulle nok have skrevet at det var i C++ jeg skulle have lavet den liste, men det er ligemeget nu jeg fand ud af det selv. forresten chries hvad betyder node?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.