C语言链表基本操作_第1页
C语言链表基本操作_第2页
C语言链表基本操作_第3页
C语言链表基本操作_第4页
C语言链表基本操作_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/链表操作:建立、插入、删除、查找、倒置、删除等基本操作/喜洋洋制作#包括#包括typedef结构LNodeint数据;结构下一个节点*LNode,* LlistLNode * creat _ head();/创建一个空表void creat_list(LNode *,int);/创建一个长度为n的线性链表void insert_list(LNode *,int,int);/插入一个元素int delete_list(LNode *,int);/删除一个元素int found_list(LNode *,int);/链表查询无效反转(LNode *);/倒置整个链表void delete _ whole(LNode *);/删除整个链表void print _ list(LNode *);/打印链表main()LNode *头;N2国际机场;国际十、一;int b;char temp1,temp2head=creat _ head();printf(请输入链表的节点个数n=);scanf(% d ,n);printf(n请输入数据: n );creat_list(head,n);/创建链表打印列表(标题);printf( n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf(n下面进行链表插入元素 n );printf(n请输入您需要插入的元素x=);scanf(% d ,x);printf(n请输入即将插入的位置我=);扫描(“% d”,I);插入_列表(标题,x,I);/插入元素打印列表(标题);printf( n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf(n下面进行链表删除元素 n );printf(n请输入即将删除元素的位置:我=);扫描(“% d”,I);b=删除列表(标题,I);/删除元素打印列表(标题);printf(nn成功删除元素:%d ,b);printf( n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf(n下面进行链表查询 n );printf(n请输入即将查询的元素:x=);scanf(“% d”,N2);if(found_list(head,n2)0) /链表查询printf(找到了,在第%d的位置上,found_list(主管,N2);其他printf(没有找到!);printf( n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf(n是否倒置整个链表?是/否 N );ff拉什(stdin);scanf(“% c”,temp 1);if(Y=temp1) /倒置链表倒转(头);打印列表(标题);printf( n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf(n是否删除整个链表?是/否 N );ff拉什(stdin);scanf(“% c”,temp 2);if(Y=temp2) /删除链表删除_整体(标题);printf(n成功删除整个链表 n );/创建一个空链表LNode *creat_head()LNode * p;p=(列表)malloc(大小(节点);if(NULL=p)printf(内存申请失败!);其他p-下一个=空;返回(p);/创建一个长度为n的线性链表void creat_list(LNode *head,int n)LNode *p,* q;国际;p=头部对于(I=1;i=n .q=(列表)malloc(大小(节点);if(NULL=p)printf(内存申请失败!);其他printf( data : );scanf(% d ,q-数据);q-下一个=空;p-next=q;p=q;/插入一个元素void insert_list(LNode *head,int x,int i)int j=0;LNode *p,* s;p=头部同时(p!=空)(jnextj;如果(p=空)退出(0);s=(列表)malloc(大小(节点);if(NULL=p)printf(内存申请失败!);其他s-数据=x。s-next=p-next;p-next=s;/删除一个元素int delete_list(LNode *head,int i)LNode *p,* q;int j=0;int x;p=头部同时(p!=空)(jnextj;如果(p=空)退出(0);q=p-next;p-next=q-next;x=q-数据;自由(q);q=空;返回。/删除整个链表void delete_whole(LNode *head)LNode *p,* q;p=头部同时(p!=空)q=p-next;免费(p);p=q;/倒置链表空隙反向(正面*正面)LNode *p,*s,* t;p=头部s=p-下一个;同时(下一个!=空)/主要置换过程t=s-下一个;s-next=p;p=s .s=t .s-next=p;头-下一个-下一个=空;/收尾head-next=s;/赋头/打印链表无效打印列表(正面*正面)LNode * p;for(p=head-next;p!=空;)prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论