【正经题解】模拟链表操作
2024-03-18 13:54:19
发布于:浙江
20阅读
0回复
0点赞
这段代码创建了一个单链表,首先按顺序插入 个元素,然后执行 次插入操作,最后输出最终的链表元素。
#include<bits/stdc++.h>
using namespace std;
struct node{
int data;
node *next;
}*p,*head,*r;
int main(){
int n,m;
cin>>n>>m;
//申请头结点
head=new node;
head->next=NULL;
r=head;
for(int i=1;i<=n;i++){
int temp;
cin>>temp;
p=new node;
p->data=temp;
p->next=NULL;
r->next=p;//连接两个结点
r=p;//新的结点成为尾结点
}
int x,y;//在x后面插入y
for(int i=1;i<=m;i++){
cin>>x>>y;
//去搜索到要插入的关键结点
p=head;//p指针先移动到最开始,然后遍历
while(p->next->data!=x) p=p->next;
p=p->next;
//插入数据
node *t=new node;
t->data=y;
t->next=NULL;
//开始连接结点
t->next=p->next;
p->next=t;
}
//遍历整个链表
p=head;
while(p->next!=NULL){
cout<<p->next->data<<" ";
p=p->next;
}
return 0;
}
这里空空如也
有帮助,赞一个