



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/线性表的单链表存储结构 struct LNode ElemType data; LNode *next; ; typedef LNode *LinkList; / 另一种定义LinkList的方法/ bo2-4.cpp 设立尾指针的单循环链表(存储结构由c2-2.h定义)的12个基本操作 Status InitList_CL(LinkList &L) / 操作结果:构造一个空的线性表L。 L=(LinkList)malloc(sizeof(LNode); / 产生头结点,并使L指向此头结点 if(!L) / 存储分配失败 exit(OVERFLOW); return OK; Status DestroyList_CL(LinkList &L) / 操作结果:销毁线性表L。 LinkList q,p=L-next; / p指向头结点 while(p!=L) / 没到表尾 q=p-next; free(p); p=q; free(L); L=NULL; return OK; Status ClearList_CL(LinkList &L) / 改变L / 初始条件:线性表L已存在。操作结果:将L重置为空表。 LinkList p,q; L=L-next; / L指向头结点 p=L-next; / p指向第一个结点 while(p!=L) / 没到表尾 q=p-next; free(p); p=q; L-next=L; / 头结点指针域指向自身 return OK; Status ListEmpty_CL(LinkList L) / 初始条件:线性表L已存在。 / 操作结果:若L为空表,则返回TRUE,否则返回FALSE。 if(L-next=L) / 空 return TRUE; else return FALSE; int ListLength_CL(LinkList L) / 初始条件:L已存在。操作结果:返回L中数据元素个数。 int i=0; LinkList p=L-next; / p指向头结点 while(p!=L) / 没到表尾 i+; p=p-next; return i; Status GetElem_CL(LinkList L,int i,ElemType &e) / 当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR int j=1; / 初始化,j为计数器 LinkList p=L-next-next; / p指向第一个结点 if(iListLength_CL(L) / 第i个元素不存在 return ERROR; while(jnext; j+; e=p-data; / 取第i个元素 return OK; int LocateElem_CL(LinkList L,ElemType e,Status(*compare)(ElemType,ElemType) / 初始条件:线性表L已存在,compare()是数据元素判定函数。 / 操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。 / 若这样的数据元素不存在,则返回值为0。 int i=0; LinkList p=L-next-next; / p指向第一个结点 while(p!=L-next) i+; if(compare(p-data,e) / 满足关系 return i; p=p-next; return 0; Status PriorElem_CL(LinkList L,ElemType cur_e,ElemType &pre_e) / 初始条件:线性表L已存在。 / 操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱, / 否则操作失败,pre_e无定义。 LinkList q,p=L-next-next; / p指向第一个结点 q=p-next; while(q!=L-next) / p没到表尾 if(q-data=cur_e) pre_e=p-data; return TRUE; p=q; q=q-next; return FALSE; Status NextElem_CL(LinkList L,ElemType cur_e,ElemType &next_e) / 初始条件:线性表L已存在。 / 操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继, / 否则操作失败,next_e无定义。 LinkList p=L-next-next; / p指向第一个结点 while(p!=L) / p没到表尾 if(p-data=cur_e) next_e=p-next-data; return TRUE; p=p-next; return FALSE; Status ListInsert_CL(LinkList &L,int i,ElemType e) / 改变L / 在L的第i个位置之前插入元素e LinkList p=L-next,s; / p指向头结点 int j=0; if(iListLength_CL(L)+1) / 无法在第i个元素之前插入 return ERROR; while(jnext; j+; s=(LinkList)malloc(sizeof(LNode); / 生成新结点 s-data=e; / 插入L中 s-next=p-next; p-next=s; if(p=L) / 改变尾结点 L=s; return OK; Status ListDelete_CL(LinkList &L,int i,ElemType &e) / 改变L / 删除L的第i个元素,并由e返回其值 LinkList p=L-next,q; / p指向头结点 int j=0; if(iListLength_CL(L) / 第i个元素不存在 return ERROR; while(jnext; j+; q=p-next; / q指向待删除结点 p-next=q-next; e=q-data; if(L=q) / 删除的是表尾元素 L=p; free(q); / 释放待删除结点 return OK; Status ListTraverse_CL(LinkList L,void(*vi)(ElemType) /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省古田县人力资源和社会保障局招聘10人模拟试卷及1套完整答案详解
- 2025年枝江市市级机关公开遴选考试真题
- 2024年平凉市灵台县人民检察院招聘公益性岗位工作人员考试真题
- 2025年东港市市级机关公开遴选考试真题
- 2025海南保亭黎族苗族自治县市场监督管理局公益性岗位人员招聘1人考前自测高频考点模拟试题有答案详解
- 轧钢精整工项目管理基础能力考核试卷及答案
- 公司保险公估人岗位设备安全技术规程
- 公司淀粉加工工岗位工艺作业技术规程
- 公司管涵顶进工岗位工艺作业技术规程
- 绝缘成型件制造工知识技能传承考核试卷及答案
- (2025)社区网格员笔试考试题库及答案
- 简约风共青团团支书竞选自我介绍
- 心理学研究方法(第2版)课件 王轶楠 第4-7章 完成研究过程-走上国际学术舞台
- 统编版语文五年级上册 第6单元 教学设计
- 降铬剂使用管理制度
- 索道技术发展趋势-深度研究
- 第三单元 植物的生活单元练习-2024-2025学年人教版生物七年级下册
- 湖北省十堰市2024-2025学年高二上学期1月期末调研考试物理试题(含答案)
- 社会工作行政(第三版)课件全套 时立荣 第1-11章 社会服务机构- 社会工作行政的挑战、变革与数字化发展
- 慢性糜烂性胃炎护理
- 公共体育民族操舞知到智慧树章节测试课后答案2024年秋广西科技大学
评论
0/150
提交评论