社区讨论
链表爆了,蒟蒻求救、、、
P1160队列安排参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ciibs
- 此快照首次捕获于
- 2025/11/20 19:26 4 个月前
- 此快照最后确认于
- 2025/11/20 19:26 4 个月前
CPP
#include<iostream>
#include<cstdlib>
using namespace std;
int n;
struct node
{
int data;
node *next,*pre;
}; //双向链表
node *head,*r,*c;
void del(int v) //删除模块
{
//node *go=r;
//node *stay;
while(r->next!=NULL)
{
//stay=go;
if(r->data==v) //删除
{
r->pre->next=r->next;
r->next->pre=r->pre;
free(r);
}else{
r=r->next; // 没找到就继续找
}
//go=stay->next;
}
}
void add(int k,int p,int j) //加入
{
//node *m=r;
//int i=1;
while(r->next!=NULL) //判断是否为最后一个节点
{
if(r->data==k)
{
break;
}
r=r->next;
}
//if(r==NULL) return;
//node *c;
c=new node; //加入节点
c->data=j;
c->next=NULL;
c->pre=NULL;
if(p==0) //判断插入位置
{
r->pre->next=c;
c->pre=r->pre;
c->next=r;
r->pre=c;
}else if(p==1){
r->next->pre=c;
c->next=r->next;
c->pre=r;
r->next=c;
}
}
int main()
{
cin>>n;
head=new node;
head->data=1;
head->next=NULL;
head->pre=NULL;
r=head;
int k,_p;
for(int i=2;i<=n;i++)
{
cin>>k>>_p;
add(k,_p,i);
r=head;
}
int m;
cin>>m;
int v;
for(int i=1;i<=m;i++)
{
cin>>v;
del(v);
r=head;
}
while(head->next!=NULL) //遍历链表
{
cout<<head->data<<" ";
head=head->next;
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...