数据结构第五版第二章实验1.实现顺序表的各种基本运算
来源:互联网 发布:贵州 大数据大诚信 编辑:程序博客网 时间:2024/05/29 04:43
编写一个程序exp2-1.cpp,实现顺序表的各种运算
并在此基础上完成如下功能:
(1)初始化顺序表L;
(2)采用尾插法依次插入元素a,b,c,d,e;
(3)输出顺序表L;
(4)输出顺序表L的长度;
(5)判断顺序表L是否为空;
(6)输出顺序表L的第3个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入元素f;
(9)输出顺序表L;
(10)删除L的第3个元素;
(11)输出顺序表L;
(12)释放顺序表L
//顺序表的各种基本运算*/#include <stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType;typedef struct{ ElemType data[MaxSize]; int length;} SqList;void InitList(SqList *&L) //初始化线性表{ L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 L->length=0; //置空线性表长度为0}void DestroyList(SqList *L) //销毁线性表{ free(L);}bool ListEmpty(SqList *L) //判线性表是否为空表{ return(L->length==0);}int ListLength(SqList *L) //求线性表的长度{ return(L->length);}void DispList(SqList *L) //输出线性表{ int i; if (ListEmpty(L)) return; for (i=0;i<L->length;i++) printf("%c ",L->data[i]); printf("\n");}bool GetElem(SqList *L,int i,ElemType &e) //求线性表中某个数据元素值{ if (i<1 || i>L->length) return false; //参数错误时返回false e=L->data[i-1]; //取元素值 return true; //成功找到元素时返回true}int LocateElem(SqList *L, ElemType e) //按元素值查找{ int i=0; while (i<L->length && L->data[i]!=e) i++; //查找元素e if (i>=L->length) //未找到时返回0 return 0; else return i+1; //找到后返回其逻辑序号}bool ListInsert(SqList *&L,int i,ElemType e) //插入数据元素{ int j; if (i<1 || i>L->length+1) return false; //参数错误时返回false i--; //将顺序表逻辑序号转化为物理序号 for (j=L->length;j>i;j--) //将data[i]及后面元素后移一个位置 L->data[j]=L->data[j-1]; L->data[i]=e; //插入元素e L->length++; //顺序表长度增1 return true; //成功插入返回true}bool ListDelete(SqList *&L,int i,ElemType &e) //删除数据元素{ int j; if (i<1 || i>L->length) //参数错误时返回false return false; i--; //将顺序表逻辑序号转化为物理序号 e=L->data[i]; for (j=i;j<L->length-1;j++) //将data[i]之后的元素前移一个位置 L->data[j]=L->data[j+1]; L->length--; //顺序表长度减1 return true; //成功删除返回true}extern void InitList(SqList *&L);extern void DestroyList(SqList *L);extern bool ListEmpty(SqList *L);extern int ListLength(SqList *L);extern void DispList(SqList *L);extern bool GetElem(SqList *L,int i,ElemType &e);extern int LocateElem(SqList *L, ElemType e);extern bool ListInsert(SqList *&L,int i,ElemType e);extern bool ListDelete(SqList *&L,int i,ElemType &e);int main(){ SqList *L; ElemType e; printf("顺序表的基本运算如下:\n"); printf(" (1)初始化顺序表L\n"); InitList(L); printf(" (2)依次采用尾插法插入a,b,c,d,e元素\n"); ListInsert(L,1,'a'); ListInsert(L,2,'b'); ListInsert(L,3,'c'); ListInsert(L,4,'d'); ListInsert(L,5,'e'); printf(" (3)输出顺序表L:"); DispList(L); printf(" (4)顺序表L长度=%d\n",ListLength(L)); printf(" (5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空")); GetElem(L,3,e); printf(" (6)顺序表L的第3个元素=%c\n",e); printf(" (7)元素a的位置=%d\n",LocateElem(L,'a')); printf(" (8)在第4个元素位置上插入f元素\n"); ListInsert(L,4,'f'); printf(" (9)输出顺序表L:"); DispList(L); printf(" (10)删除L的第3个元素\n"); ListDelete(L,3,e); printf(" (11)输出顺序表L:"); DispList(L); printf(" (12)释放顺序表L\n"); DestroyList(L);}
阅读全文
0 0
- 数据结构第五版第二章实验1.实现顺序表的各种基本运算
- 数据结构第五版第二章实验2.实现单链表的各种基本运算
- 数据结构 顺序串的各种基本运算
- 数据结构第三章实验2.实现链栈的各种基本运算
- 数据结构第三章实验3.实现环形队列的各种基本运算
- 实现顺序表各种基本运算算法
- 实现顺序表各种基本运算的算法
- 编写一个程序,实现顺序表的各种基本运算
- 顺序表的各种基本运算
- 顺序表各种基本运算的算法
- 顺序表的各种基本运算
- 数据结构之顺序表的基本运算
- 【数据结构实验】实验二 顺序表的基本操作的实现
- 实现顺序栈的各种基本运算的算法
- 实现顺序栈各种基本运算的算法
- 实现顺序队列各种基本运算的算法
- 实现顺序队列各种基本运算的算法
- 实现顺序串各种基本运算的算法
- D13递归
- SpringMVC上传图片总结(1)-Web Uploader--常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- fedora26下安装和配置openldap(1)
- Tera term串口下发AT命令测试
- MATLAB编译libsvm出现问题
- 数据结构第五版第二章实验1.实现顺序表的各种基本运算
- 正则获取字符串中图片路径
- winform与unity之间的Socket通讯
- 设计模式三连发
- HADOOP集群搭建实战(HA高可靠性模式)
- (1)Python笔记:抓取CSDN博文
- LRU算法 c++手写 map
- jQuery实现input框输入值动态搜索
- 洛谷的文件夹(树形结构+DFS+字符串哈希)