全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include stdio.h#include stdlib.h/* 定义ElemType为int类型 */typedef int ElemType;#define TRUE 1#define FALSE 0#define NULL 0#define flag -1/* 单链表的结点类型 */typedef struct LNodeElemType data; struct LNode *next; LNode,*LinkedList;/* 初始化单链表 */LinkedList LinkedListInit()LinkedList L; L=(LinkedList)malloc(sizeof(LNode); L-next=NULL; return L;/* 清空单链表 */void LinkedListClear(LinkedList L)L-next=NULL;/* 检查单链表是否为空 */int LinkedListEmpty(LinkedList L)if(L-next=NULL) return TRUE; else return FALSE;/* 遍历单链表 */void LinkedListTraverse(LinkedList L)LinkedList p; p=L-next; while(p!=NULL) printf(%d ,p-data); p=p-next; int LinkedListLength (LinkedList L)LinkedList p; int j; p=L-next; j=0; while(p!=NULL) j+;p=p-next; return j ;int LinkedListGet (LinkedList L, int i)LinkedList p;int j; p=L-next;j=1;while (p!=NULL & jnext; j+; if (j=i) return p-data;else return NULL;LinkedList LinkedListLocate ( LinkedList L, ElemType x)LinkedList p; p=L-next;while ( p!=NULL & p-data != x) p=p-next;return p; /* 返回查找到的元素的地址 */ void LinkedListInsert(LinkedList L, int i, ElemType x)LinkedList pre,p,s;int j; pre=L;j=1;p=L-next; while(pre&jnext;j+; if(pre=NULL) printf(给的i值超过了表长);exit(0); s=(LNode *)malloc(sizeof(LNode); s-data=x; pre-next=s; s-next=p;void LinkedListDel (LinkedList L,ElemType x) LinkedList pre,p;int j;pre=L;j=1;p=L-next;while(p&p-data!=x)pre=p;p=p-next;j+;if(p=NULL)printf(表中没有值为x的结点);exit(0);pre-next=p-next;free(p);LinkedList LinkedListCreat( ) LinkedList L=LinkedListInit(),p,r; ElemType x; r=L; printf(please input data,input -1 is endn); scanf(%d,&x); while (x!=flag)p=(LinkedList)malloc(sizeof(LNode); p-data=x; r-next=p; r=p;scanf(%d,&x); r-next=NULL; return L;int scan()int d; printf(please input the operationn); printf(1.初始化 2.清空3.求链表长度4.检查链表是否为空n); printf(5.遍历链表 6.从链表中查找元素n); printf(7.从链表中查找与给定元素值相同的元素在顺序表中的位置n); printf(8.向链表中插入元素9. 从链表中删除元素n); printf(其他键退出。n); scanf(%d,&d); return(d);void main()int quit=0;int i;ElemType e; LinkedList L; while(!quit) switch(scan() case 1:L=LinkedListInit();break; case 2:LinkedListClear(L);break; case 3:printf(the length is%dn,LinkedListLength(L);break; case 4:if(LinkedListEmpty(L)printf(truen);else printf(falsen);break; case 5:LinkedListTraverse(L);break; case 6:printf(please input the location.n);scanf(%d,&i);printf(the num.is %dn,LinkedListGet(L,i);break; case 7:printf(please input the element.n);scanf(%d,&e);printf(the location.is %dn,LinkedListLocate(L,e);break; case 8:printf(please input the insert location and insert num.n);scanf(%d%d,&i,&e);LinkedListInsert(L,i,e);break; case 9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年统编版语文九年级上册第二单元测试卷模拟练习含答案
- 纸业行业工艺流程总结
- 2026年养老护理员就业市场分析与求职策略
- 高校护理学术课件资源平台
- 双J管引流袋的规范使用与护理要点
- 骨科术后常用器械护理
- 耳聋基因临床检测
- 2024年郑州市大河村考古遗址公园招聘考试真题
- 护理5S管理:提升科室效率与质量的利器
- 绿灯闪烁慎通行课件
- 供热管网系统管网水力平衡调节方法及步骤
- JJG 144-2007标准测力仪
- GB/T 29477-2012移动实验室实验舱通用技术规范
- GA/T 800-2008人身损害护理依赖程度评定
- FZ/T 12001-2015转杯纺棉本色纱
- 眼睛保健知识111课件
- 国家药监局医疗器械技术审评检查大湾区分中心第二批员额制人员公开招聘(广东)【共500题附答案解析】模拟检测试卷
- 通达信函数大全整理
- 小升初英语衔接存在的问题及其对策优秀获奖科研论文
- 煤矿矿井废水处理设计方案
- 《数字电路逻辑设计》--逻辑函数及其化简练习习题
评论
0/150
提交评论