




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/数据结构示例程序(顺序表的各种操作) /-文件包含-#include #include #include /-预定义常量和类型(教材第10页)-#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;/-第2-顺序表结构定义(教材2页)-#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int ElemType; /在本示例程序中,顺序表元素为整型 typedef struct ElemType *elem; int length; int listsize;SqList;/-顺序表基本操作-/构造一个空的顺序表L(教材第23页算法2.3) Status InitList_Sq(SqList &L) L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if (!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK;/销毁顺序表L Status DestroyList_Sq(SqList &L) if (L.elem) free(L.elem); L.length=0; L.listsize=0; return OK;/将L重置为空顺序表 Status ClearList_Sq(SqList &L) L.length=0; return OK;/判断L是否为空顺序表。若为空顺序表,返回TRUE,否则返回FALSE。 Status ListEmpty_Sq(SqList L) if (L.length=0) return TRUE; else return FALSE;/求顺序表L的长度 int ListLength_Sq(SqList L) return L.length;/用e返回顺序表L中第i个数据元素的值 Status GetElem_Sq(SqList L,int i,ElemType &e) if (iL.length) return ERROR; e=L.elemi-1; return OK; /返回顺序表L中第1个和e相等的数据元素的位序。若这样的数据元素不存在,则返回值为0。 int LocateElem_Sq(SqList L,ElemType e) int i; i=0; while (iL.length & L.elemi!=e) i+; if (iL.length) return i+1; else cout1) pre_e=L.elemi-2; return OK; else cout0 & iL.length) next_e=L.elemi; return OK; else cout顺序表为空或数据元素cur_e不在顺序表中或数据元素cur_e在顺序表中是最后一个数据元素!; return ERROR; /在顺序表L中第i个位置之前插入新的元素e(教材第24页算法2.4) Status ListInsert_Sq(SqList &L,int i,ElemType e) ElemType *newbase,*p,*q; if (iL.length+1) return ERROR; if (L.length=L.listsize) newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType); if (!newbase) exit(OVERFLOW); L.elem=newbase; L.listsize+=LISTINCREMENT; q=&(L.elemi-1); for (p=&(L.elemL.length-1);p=q;-p) *(p+1)=*p; *q=e; +L.length; return OK;/在顺序表L中删除第i个元素,并用e返回其值(教材第24-25页算法2.5) Status ListDelete_Sq(SqList &L,int i,ElemType &e) ElemType *p,*q; if (iL.length) return ERROR; p=&(L.elemi-1); e=*p; q=L.elem+L.length-1; for (+p;p0) for (i=1;i=L.length;i+) coutL.elemi-1,; return OK; else cout顺序表为空!; return ERROR; /-主函数-int main() SqList L; /定义顺序表L ElemType e,e1,e2; int i; InitList_Sq(L); /构造一个空的顺序表L for (i=1;i=5;i+) ListInsert_Sq(L,i,i); ListTraverse(L); coutendl; ListDelete_Sq(L,2,e); ListTraverse(L); coutendl; coutLength=ListLength_Sq(L)endl; GetElem_Sq(L,3,e); coute=eendl; coutThe position of 5 is LocateElem_Sq(L,5)endl; PriorElem_Sq(L,4,e1); coutThe prior elem of 4 is e1endl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安徽省三支一扶招聘考试(962人)模拟试卷附答案详解(突破训练)
- 2025甘肃陇南市成县消防救援大队招聘政府专职消防员12人模拟试卷附答案详解(模拟题)
- 2025年吉林松原经济技术开发区管理委员会公开招聘事业单位工作人员(含专项招聘高校毕业生)(5人)模拟试卷及完整答案详解1套
- 陕投集团2025校园招聘官网笔试历年参考题库附带答案详解
- 浙江国企招聘2025杭州市临安区城市发展投资集团有限公司下属路桥公司公开招聘工作人员14人(第二批)笔试历年参考题库附带答案详解
- 浙江国企招聘2025丽水市12345政务咨询投诉举报服务中心招聘工作人员若干人笔试历年参考题库附带答案详解
- 2025陕西延安大数据运营有限公司招聘6人笔试历年参考题库附带答案详解
- 2025鄂尔多斯市西北能源化工招聘(8人)笔试历年参考题库附带答案详解
- 2025贵州黔东南州麻江县文化旅游投资开发有限公司招聘1人笔试历年参考题库附带答案详解
- 2025安徽工程大学高层次人才招聘60人考前自测高频考点模拟试题及答案详解(有一套)
- 骨折与关节脱位病人的护理
- 山东医专综评试题及答案
- 高速公路改扩建工程监理投标方案(技术方案)
- 突发性耳聋的中医辩证及护理方案
- T-SZEIA 001-2024 温室气体产品碳足迹量化方法与要求 变电站电气设备
- 2025年湖南省安全员-B证考试题库及答案
- 北师大版六年级下册数学全册同步分层作业设计含答案解析
- 简易钢结构雨棚施工承包合同范本
- 苏州市前期物业管理委托合同范本
- 2022年冀教版七年级上册数学第一次月考试卷
- 《气管支架临床应用》课件
评论
0/150
提交评论