顺序表的基本操作——C++实现
2015-09-06 16:12
477 查看
目前是大四学生,在即将毕业照工作之际,想把数据结构和算法的基础好好学习,巩固下。
用的学习教材是,秦锋主编的《数据结构(C语言版)》。
以下就是我的顺序表实现代码:
个人也算是初学者,难免会有错误之处,还请各位不吝赐教,共同学习,感激不尽!
用的学习教材是,秦锋主编的《数据结构(C语言版)》。
以下就是我的顺序表实现代码:
<pre name="code" class="cpp">#include<iostream> #include<malloc.h> #define MAXSIZE 100//顺序表长度上限 using namespace std; typedef int DataType; typedef struct{ DataType data[MAXSIZE];//顺序表的存储结构 int length;//顺序表长度 }SeqList,* PSeqList; int main(){ /*函数声明*/ void panduan(PSeqList L); PSeqList Init_SeqList(void); int Locate_SeqList(PSeqList L,DataType x); void Insert_SeqList(PSeqList L,int i,DataType x); void Delete_SeqList(PSeqList L,int i); void Show_SeqList(PSeqList L); PSeqList L=Init_SeqList();//创建顺序表 int x; cout<<"\n\n输入需要查找的数值x:"; cin>>x; cout<<x<<"在顺序表中是第"<<Locate_SeqList(L,x)<<"个元素!"; int y,t; cout<<"\n\n输入需要插入的位置t及其数值y:"; cin>>t>>y; Insert_SeqList(L,t,y); cout<<"插入后的顺序表为:"; Show_SeqList(L); int z; cout<<"\n\n输入需要删除的数值的位置z:"; cin>>z; Delete_SeqList(L,z); cout<<"删除后的顺序表为:"; Show_SeqList(L); return 0; } /*判断顺序表是否存在和溢出*/ void panduan(PSeqList L){ if(!L){ cout<<"表不存在!"; return; } if(L->length>=MAXSIZE){ cout<<"表溢出!"; return; } } /*创建顺序表*/ PSeqList Init_SeqList(void){ PSeqList L; L=(PSeqList)malloc(sizeof(SeqList)); cout<<"输入顺序表的表长(不超过100):"; cin>>L->length; cout<<"输入顺序表的元素:"; for(int i=0;i<L->length;i++){ cin>>L->data[i]; } return L; } /*查找顺序表中 值为x的元素 对应的 下标*/ int Locate_SeqList(PSeqList L,DataType x){ int i=0; while(i<L->length && L->data[i]!=x) i++; if(i<L->length) return i+1; else return 0; } /*在第i个元素前插入值x*/ void Insert_SeqList(PSeqList L,int i,DataType x){ panduan(L); if(i<1 || i>L->length+1){ cout<<"插入位置不合法!"; return; } for(int j=L->length-1;j>=(i-1);j--){ L->data[j+1]=L->data[j]; } L->data[i-1]=x; L->length++; } /*删除顺序表中第i个元素*/ void Delete_SeqList(PSeqList L,int i){ panduan(L); if(i<1 || i>L->length){ cout<<"删除位置不合法!"; return; } for(int j=(i-1);j<L->length;j++){ L->data[j]=L->data[j+1]; } L->length--; } /*输出顺序表*/ void Show_SeqList(PSeqList L){ for(int i=0;i<L->length;i++){ cout<<L->data[i]<<" "; } }
个人也算是初学者,难免会有错误之处,还请各位不吝赐教,共同学习,感激不尽!
相关文章推荐
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- 肯特·贝克:改变人生的代码整理魔法
- 网页恶意代码的预防
- 动易2006序列号破解算法公布
- 高手写的Tracer-Flash代码调试类代码下载
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- Ruby实现的矩阵连乘算法
- CreateWeb.vbs 代码
- C#插入法排序算法实例分析
- Lua中编译执行代码相关的函数详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构揭秘一
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题