c++中关于线性表的实现,单链表

来源:互联网 发布:csol2淘宝刷枪 编辑:程序博客网 时间:2024/06/06 04:45

本篇文章主要讲述的是c++中线性表中单链表的实现和部分功能函数,下面是代码:#include using namespace std;//定义可变类型 typedef  int  Elm;//定义结构struct Elmnode{Elm date;//存放数据域 Elmnode* next;//指向下一数据的地址的指针 } ;//线性表最明显得得例子:单链表 //不带头结点的单链表 //尾插法 void createlist1(Elmnode* &head,Elm A){Elmnode *p,*s;p=new Elmnode;p->date=A;p->next=NULL; if(!head){head=p;}else{s=head;while(s->next) {s=s->next;} s->next=p;}} //头插法void  createlist2(Elmnode* &head,Elm A){Elmnode *p,*s;p=new Elmnode;p->date=A;p->next=NULL; if(!head){head=p;}else{s=head->next;p->next=s;head->next=p;}}//链表的遍历void travellist(Elmnode* head){Elmnode* p=head;while(p){cout<date<<" ";}} //链表的定点插入,非逻辑数 void insertlist(Elmnnode*& head,Elm A,int number) {Elmnode *p=head,*m,*l=head->next;int num=0;if(number==0){m=new Elmnode;m->date=A;m->next=p;head=m;return ; }while(number!=++num&&l){p=p->next;l=l->next;}if(number==num){m=new Elmnode;m->date=A;m->next=l;p->next=m;return ;}else if(number==num+1&&!l){m=new Elmnode;m->date=A;m->next=l;p->next=m;return ; }else{cout<<"插入位置出错";return ; }}//链表的删除void deletlist(Elmnode* &head){Elmnode *p=head,s;while(p){s=p;p=p->next;delete s;}return ;} //链表的翻转void turnlist(Elmnode*& head){Elmnode *p=head,*s=head->next,*l=s->next;if(s==NULL) return ;if(l==NULL){s->next=p;p->next=NULL;return ;}while(l){s->next=p;p=s;s=l;l=l->next;}s->next=p;head->next=NULL;return ;}  

原创粉丝点击