为什么会RE啊
查看原帖
为什么会RE啊
479628
zhou_qian_le楼主2021/5/4 15:34

打了半天函数,愣是没发现那里指针错了```cpp #include<bits/stdc++.h> using namespace std;

struct node{ int st=1; int num; node* pre=NULL; node* nxt=NULL; };

node head; int in;

void ins_left(node* ndi,node *ndo){ ndo->pre=ndi->pre; ndo->pre->nxt=ndo; ndi->pre=ndo; ndo->nxt=ndi; }

void ins_right(node* ndi,node *ndo){ ndo->nxt=ndi->nxt; ndi->nxt->pre=ndo; ndi->nxt=ndo; ndo->pre=ndi; }

int del(node *nd){ if(nd->st==0){ return -1; } nd->pre->nxt=nd->nxt; nd->nxt->pre=nd->pre; nd->st=0; return 0; }

node* search_num(int snum){ node* nd=&head; for(;nd->num!=snum;nd=nd->nxt){ nd=nd->nxt; } return nd; }

int k,p,m,tmp;

int main(){ head.num=1; cin>>in; for(int i=1;i<in;i++){ cin>>k>>p; node* now=search_num(k); if(p==0){ node* ins=new node; ins_left(now,ins); }else{ node* ins=new node; ins_right(now,ins); } }

cin>>m;
for(int i=0;i<m;i++){
	cin>>tmp;
	del(search_num(tmp));
}


for(node* pr=&head;pr->nxt!=NULL;pr=pr->nxt){
	cout<<pr->num<<" ";
}

return 0;

}

2021/5/4 15:34
加载中...