结构算法 001 线性表的顺序存储--顺序表
来源:互联网 发布:网络用户管理系统注册 编辑:程序博客网 时间:2024/06/05 18:10
线性表的顺序存储–顺序表
线性表
- 顺序存储
- 顺序表
- 链式存储
- 单链表(指针实现)
- 双链表(指针实现)
- 循环链表(指针实现)
- 静态链表(借助数组实现)
顺序表实战代码
#include <iostream>using namespace std;#define Initsize 100typedef int elemtype; //类型重定义,就是给int改了个名字,这样做,以后改数据类型的时候很容易typedef struct{ elemtype *data; int MaxSize,length;}SeqList;//假设客户不知道从零开始,他眼里只有位置1,位置2……,(没有位置0)//但是计算机存储是从0号存储单元开始的,所以要注意转换。bool ListInsert(SeqList &L,int i,elemtype e) // 把e插入第i个位置{ if (i<1 || i>L.length+1) return false; if (L.length>=L.MaxSize) return false; for (int j=L.length;j>=i;j--) L.data[j]=L.data[j-1]; L.data[i-1]=e; L.length++; return true;}bool ListDelete(SeqList &L,int i) //删除第i个位置的元素{ if (i<1||i>L.length) return false; for (int j=i;j<L.length;j++) L.data[j-1]=L.data[j]; L.length--; return true;}int ListkFind(SeqList &L,elemtype e) //值为e的元素在哪一个位置?{ for (int j=0;j<L.length;j++) if (L.data[j]==e) return ++j; //能找到这个元素的话,在这里就执行完啦,跳出函数。 // 找不到的话当然不执行这个return。就要继续向下执行了。 //注意j++和++j不一样,这里不能写成j++ return false;}int main() { SeqList L; //以下四句是初始化 L.data=new elemtype[Initsize]; L.MaxSize=100; L.length=0; //表示当前线性表中的元素数量。 for (int i=0;i<20;i++) ListInsert(L,i+1,i); cout<<"*******"<<endl; cout<<ListkFind(L,14)<<endl; //理论上应该返回代表位置的数字“15” cout<<"*******"<<endl; ListDelete(L,3); //理论上应该是2不见了。 for (int i=0;i<20;i++) cout<<L.data[i]<<endl;}
阅读全文
0 0
- 结构算法 001 线性表的顺序存储--顺序表
- 线性表的顺序结构存储
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 顺序存储结构的线性表
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 【数据结构】线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 线性表顺序存储结构的优缺点
- 线性表顺序存储结构的优缺点
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- ITU-R BT.601 Y'CbCr
- Java 双重判空 volatile 单例模式详解
- Java集合框架的知识总结(1) 说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。 1、综述 所有集合类
- 关于public,static的一些总结
- 初学者的浅谈
- 结构算法 001 线性表的顺序存储--顺序表
- Java中反射(Reflection)的应用
- 基于ThinkPHP5框架做的微信公众号开发(001)
- (转)美国:2016-2045新科技趋势报告
- Android JNI 传递对象
- AD印制板多引线连接
- 【状态压缩dp】【轮廓线dp】【互不侵犯King】【HYSBZ】【BZOJ】【1087】
- maven生命周期学习
- 【Cython】Cython 基本用法