链表的基本操作

#include<bits/stdc++.h>
using namespace std;
typedef struct ww{
	int data;
	struct ww *next;
}ww;
int n,x,pos,a,b;
int main(){
	ww*head=(ww*)malloc(sizeof(ww));//初始化链表 
	ww*r=head;
	head->next=NULL;
	scanf("%d",&n);
	for(int i=0;i<n;i++){//创建链表 
		ww*p_new=(ww*)malloc(sizeof(ww));
		scanf("%d",&x);
		p_new->data=x;
		p_new->next=NULL;
		r->next=p_new;
	    r=r->next;
		
	}
	scanf("%d",&pos);
	ww*p_pos1=head->next;
	int j1=1;
	int q=0;
	while(p_pos1){//查找第pos位 
		if(j1==pos){
		q=1;printf("%d\n",p_pos1->data);break;
		}
		p_pos1=p_pos1->next;
		j1++;
	}
	if(q==0)printf("查无此元素\n");
	scanf("%d %d",&pos,&x);
	ww*p_pos2=head->next;
	int j2=1;
	while(p_pos2){//在pos位,插入x 
	    if(j2==pos){
	    	ww*p_new=(ww*)malloc(sizeof(ww));
	    	p_new->next=p_pos2->next;
	    	p_new->data=x;
	    	p_pos2->next=p_new;
	    	break; 
		}
		p_pos2=p_pos2->next;
	}
	scanf("%d",&pos);
	ww*p_pos3=head->next;
	int j3=1;
	while(p_pos3){//删除第pos位 
		if(j3==pos-1){
		p_pos3->next=p_pos3->next->next;
		break;
		}
		p_pos3=p_pos3->next;
		j3++;
	}
	scanf("%d %d %d",&a,&b,&x);
	ww*p_pos4=head->next;
	while(p_pos4){//在a和b中插入x 
		if(p_pos4->data==a&&p_pos4->next->data==b){
			ww*p_new=(ww*)malloc(sizeof(ww));
			p_new->next=p_pos4->next;
			p_pos4->next=p_new;
			p_new->data=x; 
		}
	}
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

emo的鱼香roise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值