1、顺序表基本算法实验报告C语言程序设计实践For personal use only in study and research; not for commercial use综合题目: 顺序表基本算法 班 级: 姓 名: 同组人员: 提交日期: 一、程序功能:1、建立一个顺序表。2、对建立好的顺序表进行一些基本的操作,如:a.顺序表的类型定义。b.求顺序表长操作。c.取顺序表元素操作。d.按值查找操作。e.显示元素操作。f.插入操作。g.删除操作。h.显示元素操作。 二、算法设计思想:用一组存储单元来存放线性表中的数据元素,把顺序表中的所有元素按照其逻辑结构顺序依次储存到从计算机储存器中指定储
2、存位置开始的一块连续的储存空间。线性表中的第一个位置储存在数组的起始位置(下标为0)在定义一个顺序表时,除了定义一个数组来储存线性表中的所有元素,还需要定义一个整型变量来储存线性表的实际长度。然后通过对数组元素中的元素进行操作,对顺序表进行基本算法。三、算法运行结果1、显示整个功能2、设置顺序表的长度:3、求出并返回顺序表的长度:4、在顺序表中取出某个位置的元素并返回其值:5、显示顺序表中的元素:6、在顺序表的某个位置插入元素:7、删除顺序表中的某个元素8、输出顺序表9、将顺序表逆序输出10、退出对顺序表的操作:四、收获及体会通过对顺序表的几个基本运算的调用,实现顺序表的几个基本算法。同时也懂
3、得如何定义顺序表,还有顺序表的用法。五、算法源代码#include#include#define MaxSize 50 typedef int ElemType ;typedef struct ElemType dataMaxSize; int length; SqList; /顺序表类型 void InitList(SqList *& L); /初始化顺序表 void CreateList(SqList*& L,ElemType a,ElemType n); /建立顺序表 bool ListEmpty(SqList *L); /判断顺序表是否为空表 int ListLength(SqList
4、 *L); /求顺序表长度 void DispList(SqList *L); /输出顺序表 bool GetElem(SqList *L,ElemType i,ElemType &e); /求顺序表中某个元素值 int LocateElem(SqList *L,ElemType e); /按照元素值查找 bool ListInsert(SqList *& L,ElemType i,ElemType e); /插入元素e bool ListDelete(SqList *& L,int i,ElemType &e); /删除元素 void DestroyList(SqList *&L); /销毁
5、顺序表 void InitList(SqList *& L) /初始化顺序表 L=(SqList*)malloc(sizeof(SqList); L-length=0;void CreateList(SqList*& L,ElemType a,ElemType n) /建立顺序表 2 int i; L=(SqList *)malloc(sizeof(SqList); for(i=0;idatai=ai; L-length=n;bool ListEmpty(SqList *L) /判断顺序表是否为空表 return(L-length=0);int ListLength(SqList *L) /求
6、顺序表长度 return(L-length);void DispList(SqList *L) /输出顺序表 int i; for(i=0;ilength;i+) printf(%3d,L-datai); printf(n); bool GetElem(SqList *L,ElemType i,ElemType &e) /求顺序表中某个元素值 if(iL-length) return false; e=L-datai-1; return true;int LocateElem(SqList *L,ElemType e) /按照元素值查找 int i=0; while(ilength&L-dat
7、ai!=e) i+; if(iL-length) return 0; else return i+1;bool ListInsert(SqList *& L,ElemType i,ElemType e) /插入元素e int j; if(iL-length+1) return false; i-; for(j=L-length;ji;j-) L-dataj=L-dataj-1; L-datai=e; L-length+; return true;bool ListDelete(SqList *& L,int i,ElemType &e) /删除元素 int j; L = NULL; if(iL
8、-length) return false; i-; e=L-datai; for(j=i;jlength-1;j+) L-dataj=L-dataj+1; L-length-; return true;void DestroyList(SqList *&L) /销毁顺序表 free(L); L = NULL;仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur fr den persnlichen fr Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l tude et la recherche uniquement des fins personnelles; pas des fins commerciales. , , . 以下无正文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1