//creaing a linked list
#include <stdio.h>
#include <iostream>
using namespace std;
struct node {
int data;
node *next;
};
node *head = NULL;
node *tail = NULL;
Dies ist auf der Vorderseite der verknüpften ListeIch versuche, auf der Rückseite der verknüpften Liste hinzuzufügen, aber ich bekomme Segmentierung Fehler, kann jemand erklären, warum?
void addToFront(int insert){
node *temp = new node();
temp->data = insert;
temp->next = head;
head = temp;
}
Dies wird quer zu der verknüpften Liste
void Transverse(){
node *temp1 = new node();
temp1 = head;
while(temp1!=NULL){
cout << temp1->data << endl;
temp1 = temp1 ->next;
tail = temp1;
}
}
Dies ist der Teil des Codes hinzufügen ich Probleme mit habe durch Add zur rückseitigen Funktion
void addToBack(int insert){
node * temp = new node();
temp -> data = insert;
temp -> next = NULL;
if(head==NULL){
head=temp;
}
else{
node * temp2= new node();
while(temp2!=NULL){
temp2 = temp2 -> next;
}
temp2->next= temp;
}
}
int main(){
addToBack(4);
addToFront(1);
addToFront(2);
addToFront(3);
addToBack(4);
Transverse();
return 0;
}
für ein wenig denken, während du 'temp2' zeigt (insbesondere' temp2-> next') und wie es zu Ihrer Liste in engen Zusammenhang steht. (Stift und Papier sind äußerst hilfreich beim Debuggen von verknüpften Listen.) – molbdnilo
Was passiert, wenn Sie 'addToFront' aufrufen, um den allerersten Knoten in der Liste hinzuzufügen? Wohin wird der "Schwanz" zeigen? Eigentlich, wofür benutzt du die 'tail'-Variable? –
Ich denke nicht, dass ich die Schwanzvariable überhaupt verwendet habe –