80分求大佬调调
  • 板块B3631 单向链表
  • 楼主zq1one
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/7 09:17
  • 上次更新2024/5/7 15:20:55
查看原帖
80分求大佬调调
1084455
zq1one楼主2024/5/7 09:17
#include<bits/stdc++.h>
using namespace std;

int n,cz;

typedef struct nodes{
	int data;
	struct nodes *next;
}lnode,*linklist; 

void initlist(linklist &L){
	L=new lnode;//头结点 
	lnode *s=new lnode;
	s->data=1;
	s->next=NULL; 
	L->next=s; 
	return ;
}

bool listinsert(linklist &L,int a,int b){
	lnode *p=L->next;
	while(p!=NULL&&p->data!=a){
		p=p->next;
	}
	if(p==NULL){
		return false;
	}
	lnode *s=new lnode;
	s->data=b;
	s->next=p->next;
	p->next=s;
	return true;
}

int watchlist(linklist &L,int val){
	lnode *p=L;
	while(p->next!=NULL){
		p=p->next;
		if(p->data==val){
			break;
		}
	}
	if(p->next==NULL){//是最后一个元素 
		return 0; 
	}
	lnode *q=p->next;
	return q->data;
}

bool deletelist(linklist &L,int val){
	lnode *p=L;
	while(p->next!=NULL){
		p=p->next;
		if(p->data==val){
			break;
		}
	}
	if(p->next==NULL){
		return false;
	}
	lnode *q=p->next;
	p->next=q->next;
	delete q;
	return true;
}

int main(){
	int x,y;
	cin>>n;
	linklist l1;
	initlist(l1);//初始化链表 
	while(n--){
		cin>>cz;
		if(cz==1){
			cin>>x>>y;
			listinsert(l1,x,y);//后插 
		}else if(cz==2){
			cin>>x;
			int res=watchlist(l1,x); 
			cout<<res<<endl;
		}else{
			cin>>x;
			deletelist(l1,x);
		}
	}
	return 0;
}
2024/5/7 09:17
加载中...