#include<bitsdc++.h>
using namespace std;
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*PtrLNode;
typedef struct{
PtrLNode rear;//尾指针
PtrLNode front;//头指针
}LinkList;//
int InitList(LinkList &L){
L.front=L.rear=new LNode;
L.front->next=NULL;//头节点
return 1;
}
void EnList(LinkList &L,int x){
PtrLNode p = new LNode;
p->data=x;
p->next=NULL;
L.rear->next=p;
L.rear=p;
}
int Enqueue(LinkList &L,int x,int y){
PtrLNode p;
p=L.front;
while(p->next->data!=y&&p->next){
p=p->next;
}
if(!p->next) return 0;
PtrLNode q = new LNode;
q->data=x;
q->next=p->next;
p->next=q;
return 1;
}
int DeList(LinkList &L,int x){
PtrLNode p;
p=L.front;
while(p->next->data!=x&&p->next->next){
p=p->next;
}
if(!p->next) return 0;
PtrLNode q;
q=p->next;
p->next=q->next;
if(!p->next) {
L.rear=p;
}
return 1;
}
void print(LinkList L){
PtrLNode p;
p=L.front;
if(L.front->next==NULL){
cout<<"Bai Ren Zhan";
}
while(p->next){
p=p->next;
cout<<p->data<<" ";
}
}
int main(){
LinkList L;
InitList(L);
int n,m;
char c;
cin>>n>>m;
int x,y;
while(m--){
cin>>c;
switch(c){
case 'I':{
cin>>x;
EnList(L,x);
break;
}
case 'C':{
cin>>x>>y;
Enqueue(L,x,y);
break;
}
case 'L':{
cin>>x;
DeList(L,x);
break;
}
}
}
print(L);
}
数据结构:单链表题——美食节
于 2023-12-04 16:14:07 首次发布