#include<iostream>
using namespace std;
int n,m;
int arr[10],brr[10];
struct node {
int date;
struct node *next;
};
node *creat(int arr[],int x,int y){//尾插法创建单链表
node *r;
node *c=new node();
c->next=NULL;
r=c;
for(int i=0;i<n;i++){
node *s=new node();
s->date=arr[i];
r->next=s;
r=s;
}
r=c;
node *pre=NULL;//在链表中删除值为x的元素
for(int i=0;i<n;i++){
if(r->date==x){
pre->next=r->next;
free(r);
}
pre=r;
r=r->next;
}
r=c;
node *pr=NULL;//在链表中插入值为y的元素
for(int i=0;i<n;i++){
if(r->date>=y){
node *fr=new node();
fr->date=y;
fr->next=pr->next;
pr->next=fr;
}
pr=r;
r=r->next;
}
return c->next;
}
node *crea(int brr[]){//头插法创建单链表
node *d=new node();
d->next=NULL;
for(int i=0;i<n;i++){
node *q=new node();
q->date=brr[i];
q->next=d->next;
d->next=q;
}
return d->next;
}
void print(node*head){
node *q=head;
while(q!=NULL){
cout<<q->date<<" ";
q=q->next;
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
arr[i]=i;
brr[i]=i;
}
int m=4;
int z=5;
node *head=creat(arr,m,z);
node *hed=crea(brr);
print(head);
cout<<endl;
print(hed);
return 0;
}
头插法尾插法创建一个单链表,在链表中的删除,查找,插入
最新推荐文章于 2024-11-06 11:05:01 发布