单链表

来源:互联网 发布:网络购物纠纷立案 编辑:程序博客网 时间:2024/06/05 21:18
#include<iostream>using namespace std;struct list {int date;list *next;};void creatlist(list *p,int n)//创建链表{list *b;int i,num;b=p;cin>>num;b->date=num;for(i=0;i<n-1;i++){list* a=new list;cin>>num;a->date=num;b->next=a;b=a;}b->next=NULL;}void show(list *p)//显示链表{list *a;while(p){cout<<p->date<<endl;a=p->next;p=a;}}void charu(list *p,int i,int num)//插入链表{list *a=new list;int j=1;while(p&&j<i){p=p->next;j++;}if(!p||j>i){cout<<"插入失败!"<<endl;return;}a->date=num;a->next=p->next;p->next=a;}void shanchu(list *p,int i)//删除链表{list *a=new list;int j=1;while(p&&j<i){p=p->next;j++;}if(!p||j>i){cout<<"删除失败!"<<endl;return;}a=p->next;p->next=a->next;delete a;}void xiugai(list *p,int i,int num)//修改第i个位置为num{int j=1;while(p&&j<i){p=p->next;j++;}p->date=num;}void chaxun(list *p,int num)//查询num在不在该链表内,如果存在,就打印该数字的下标值{int j=1;list *a=new list;while(p){if(p->date==num){cout<<"该数字在第"<<j<<"位"<<endl;return;}a=p->next;p=a;j++;}}void quanbushanchu(list *p)//删除全部链表内容{list *a=p->next,*b;while(a){b=a->next;delete a;a=b;}p->next=NULL;p->date=NULL;}int main(){list a;creatlist(&a,8);//创建一个8个元素的链表charu(&a,4,89);//在第四个位置插入一个数shanchu(&a,3);//删除第三个位置的数xiugai(&a,4,120);chaxun(&a,5);quanbushanchu(&a);show(&a);//输出该链表return 0;}

0 0