数据结构——顺序表初操作
来源:互联网 发布:国外学位论文数据库 编辑:程序博客网 时间:2024/04/30 03:23
利用线性表实现以下操作
(1)初始化顺序表L;
(2)采用尾插法一次插入a,b,c,d,e.元素;
(3)输出顺序表L;
(4)输出顺序表L的长度;
(5)判断顺序表是否为空;
(6)输出顺序表L的第三个元素;
(7)输出元素a的位置;
(8)在第四个元素位置上插入f;
(9)输出顺序表L’
(10)删除L的第三个元素;
(11)输出顺序表L;
(12)释放顺序表L;
源代码
#include <iostream>#include<malloc.h>#include<stdio.h>#define MaxSize 50using namespace std;typedef char ElemType;typedef struct{ElemType data[MaxSize]; int length;} SqList;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; cout<<"顺序表得基本操作如下:"<<endl; cout<<"(1)初始化顺序表:"<<endl; InitList(L); cout<<"(2)依次采用尾插法插入a,b,c,d,e元素:"<<endl; ListInsert(L,1,'a'); ListInsert(L,2,'b'); ListInsert(L,3,'c'); ListInsert(L,4,'d'); ListInsert(L,5,'e'); cout<<"(3)输出线性表:"; DisPList(L); cout<<"(4)顺序表长度:"<<ListLength(L)<<endl; printf("(5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空")); GetElem(L,3,e); cout<<"(6)顺序表的第三个元素是:"<<e<<endl; cout<<"(7)元素a的位置:"<<LocateElem(L,'a')<<endl; cout<<"(8)在第四个元素位置插入f元素:"<<endl; ListInsert(L,4,'f'); cout<<"(9)输出顺序表:"<<endl; DisPList(L); cout<<"(10)删除L的第三个元素:"<<endl; ListDelete(L,3,e); cout<<"(11)输出顺序表:"<<endl; DisPList(L); cout<<"(12)释放顺序表:"<<endl; DestroyList(L); return 0;}void InitList(SqList *&L){ L=(SqList *)malloc(sizeof(SqList)); L->length=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++) cout<<L->data[i]<<endl;}bool GetElem(SqList *L,int i,ElemType &e){ if(i<1||i>L->length) return false; e=L->data[i-1]; return true;}int LocateElem(SqList *L,ElemType e){ int i=0; while(i<L->length&&L->data[i]!=e) i++; if(i>=L->length) 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; i--; for(j=L->length;j>i;j--) L->data[j]=L->data[j-1]; L->data[i]=e; L->length++; return true;}bool ListDelete(SqList *&L,int i,ElemType &e){ int j; if(i<1||i>L->length) return false; i--; e=L->data[i]; for(j=i;j<L->length-1;j++) L->data[j]=L->data[j+1]; L->length--; return true;}运行结果
0 0
- 数据结构——顺序表初操作
- 数据结构—顺序表
- 数据结构学习(一)——顺序表的操作
- 数据结构——顺序表的基本操作
- 数据结构——顺序表的基本操作
- 数据结构—线性表之顺序表的操作
- 数据结构--顺序表的操作
- 数据结构-顺序表的操作
- 数据结构-顺序表相关操作
- 数据结构:顺序表的操作
- 数据结构实验--顺序表操作
- 数据结构之顺序表操作
- 数据结构--顺序表合并操作
- 数据结构->顺序表的操作
- 数据结构——顺序表
- 数据结构——顺序表
- 数据结构——顺序表
- 数据结构——顺序表
- 为什么选择嵌入式方向
- 1015_最大公约数和最小公倍数
- 插入排序
- 带头节点的单链表的基本操作
- Ubuntu下忘记MySQL密码重设方法
- 数据结构——顺序表初操作
- 双向链表的基本操作
- [论序列自动机的奇怪姿势]
- git 统计
- 带大文件飞---威刚UE700-128G优盘速度测试
- 第二章 Spring MVC入门
- Convolutional Neural Networks卷积神经网络
- myeclipse导入项目时出现乱码 解决
- Android 多线程下载