无法遍历链表



我是链表的新手。最近我创建了一个链表,并尝试对其进行一些操作,例如插入,删除 e.tc。但我未能遍历链表。我猜头部指针在插入过程中正在更改.我多次遇到这种类型的问题。帮我弄清楚。

#include<bits/stdc++.h>
using namespace std ;
struct node
{
int data ;
struct node* next ;
};
void insertion_end( node* head , int n)
{
node* temp = new node() ;
temp->data = n ;
temp->next = nullptr ;
node* last = head ;
if(head == nullptr)
{
head =temp ;
}
else
{
while ( last != nullptr)
{
last = last->next ;
}
last = temp ;
}
}
void insertion_front (node* head , int n)
{
node* temp = new node();
temp->data = n ;
temp->next = head ;
head = temp ;
}
void deletion (node* head , int n)
{
node* temp ;
node* temp2 ;
while(temp->data != n)
{
temp = temp->next ;
}
if(temp->data != n)
{
cout<< "Not found!" <<"n" ;
}
temp2 = temp ;
temp = temp->next ;
free(temp2) ;
}
void traverse(node* head)
{
node* temp = head ;
while ( temp->next != nullptr)
{
cout<< " "<< temp->data << "n" ;
temp =temp->next ;
}
}
int main()
{
cin.tie(NULL);
cout.tie(NULL);
node* head = new node();
head->next = nullptr ;
insertion_end(head , 10);
insertion_end(head , 5463);
insertion_end(head , 474);
insertion_end(head , 5475);
insertion_end(head , 457);
insertion_end(head , 3575);
insertion_front(head , 41234);
insertion_front(head , 68976);
insertion_front(head , 23);
insertion_front(head , 57);
deletion(head , 68976);
traverse( head );
return 0 ;

}

您的插入函数应该是:

void insertion_front(node** head, int n)
{
node* temp = new node();
temp->data = n;
temp->next = *head;
*head = temp;
}

当你调用函数时:

insertion_front(&head, 41234);

相关内容

  • 没有找到相关文章

最新更新