stl用多了好久没手写链表了,写着玩玩
#include <iostream>
using namespace std;
struct node{
int val;
node*next = nullptr;
};
int main()
{
int n = 0;
while(cin>>n)//n值
{
//创建头节点
node*head = new node;
//加入第一个节点
{
int temp = 0;
cin>>temp;
node*first = new node;
first->val=temp;
head->next=first;
}
//加入后续节点
for(int i = 0;i<n-1;i++)
{
int value;//要加入节点的值
int father;//父节点的值
cin>>value>>father;
//找到要插入的位置
node*search=head->next;
while(search)
{
if(search->val==father)
{
node*son=new node;
son->val=value;
son->next=search->next;
search->next=son;
break;
}
search=search->next;
}
}
//删除指定值
{
int del;
cin>>del;
node*search=head->next;
while(search)
{
if(search->val==del)
{
if(search->next)
{
search->val=search->next->val;
node*temp=search->next;
search->next=search->next->next;
delete temp;
}
}
search=search->next;
}
}
//打印链表
{
node* search=head->next;
while(search)
{
cout<<search->val<<" ";
search=search->next;
}
cout<<endl;
}
//释放所有
node* search=head;
while(search)
{
head=head->next;
delete search;
search = head;
}
}
return 0;
}


京公网安备 11010502036488号