Ich habe eine einzelne verkettete Liste und funktioniert wie AddNode
, , PrintList
funktionieren gut, aber ich möchte ein bisschen damit manipulieren.Einzelne verkettete Liste mit mehr Datentypen innerhalb der Struktur
Sagen wir also, meine Struktur ist:
struct node
{
int data;
node* next;
bool used;
}
Deshalb möchte ich used
in allen Knoten true
sein. Aber wenn ich einige Knoten löschen möchte, sollte ihre used
auf false gesetzt werden. Im Grunde bedeutet "verwendet", dass der Knoten in der Liste ist. Und wenn ich die vollständige Liste drucken möchte, muss ich nur Knoten mit true
drucken. Es gibt einen Weg, das zu tun? Oder ist sinnlos?
Ich habe das versucht, aber offensichtlich heißt es, dass die Variable nicht im Rahmen ist. Wie kann ich das tun?
void printList()
{
curr = head;
while(curr != NULL)
{
if (node->used == true)
{
cout << curr->data << " ";
curr = curr->next;
}
}
}
'node->', was Sie hoffen, hat dies tun würde? Es wird nicht funktionieren, weil 'node' der Name der Klasse ist, keine Instanz davon, aber wenn du erklärst, was es bedeutet, würde das helfen. Meinst du nur 'curr->'? –
Wenn Sie Ihre Bedingung an 'if (curr-> used == true)' fixieren, müssen Sie 'curr = curr-> next;' aus Ihrem if-Block verschieben, sonst haben Sie eine Endlosschleife beim ersten false. – drescherjm