#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;
}
}
}
链表的基本操作
于 2022-09-23 11:23:53 首次发布