【数据结构】顺序存储——定义
来源:互联网 发布:浙大网新恒天软件福利 编辑:程序博客网 时间:2024/06/05 17:11
前言
小编最近一段时间在学习数据结构中顺序存储和链式存储的代码部分,发现有很多规律,在此做一个小结。
实例
1. 线性表
const int Maxsize=100; //预先定义顺序表的长度typedef struct //定义结构{ DataType data[Maxsize]; //表示存放数据的数组 int length; //顺序表的实际长度}SeqList; //顺序表类型名为SeqListSeqList L; //定义L为一个顺序表
2. 栈
const int Maxsize=6; //预先定义顺序栈的容量typedef struct seqstack //定义结构{ DataType data[Maxsize]; //表示存放数据的数组 int top; //标志栈顶位置的变量}SeqStk; //栈类型名为SeqStk
3. 队列
const int Maxsize=20; typedef struct seqqueue { DataType data[Maxsize]; int front,rear; //标志队列头指针、尾指针}SeqQue; SeqQue SQ;
异同点
(一)同:
通过上面的代码实例,我们不难发现,这些代码中有很多类似的部分,抽象出来,大致就是这样:
const int Maxsize=...; //预先定义长度 typedef struct ... //定义结构{ DataType data[Maxsize]; //表示存放数据的数组 int ...; //数据结构的特殊之处}...; //数据结构的类型名
这段代码的结构共分为三个部分,同样,小编认为,我们大致可以将顺序存储的代码定义分为三个部分:
(1)预先定义长度
(2)定义结构(定义数组,数据结构的特殊点)
(3)指明数据结构的类型名
(二)异:
既然我们已经知道代码的相同点,那么他们的不同之处在哪儿?
(1)通过以上三种数据结构顺序存储的示意图,我们不难发现,代码中的不同之处正是图的不同之处,线性表强调实际长度(length),栈强调栈顶位置(top),队列强调首指针和尾指针(front、rear)。
(2)代码中另一个不同点体现在数据结构的类型名(存储类型+数据结构类型),顺序的英文为“sequence”,因此类型名以“seq”开始,紧接,表是“list”,栈是“stack”,队列是“queue”。
(3)定义结构的时候,线性表为“typedef struct”,栈为“typedef struct seqstack”,队列为“typedef struct seqqueue”,小编认为这样做的原因在于栈和队列都是特殊的线性表。
小结
- 代码的学习要与图进行结合
- 学习过程中我们需要将类似的知识点进行归纳总结,对比它们的相同点和不同点
- 最终的结果就是抽象
❀下一篇博文小编准备的内容是【数据结构】链式存储——定义。
阅读全文
0 0
- 【数据结构】顺序存储——定义
- 数据结构——顺序存储二叉树
- 数据结构——栈的顺序存储
- 数据结构——栈之顺序存储
- 数据结构——队列之顺序存储
- 数据结构—二叉链顺序存储结构
- 【数据结构】链式存储——定义
- 数据结构之共享栈(顺序存储)—改编《大话数据结构》
- 数据结构——线性表及线性表顺序存储
- 数据结构与算法——线性表顺序存储结构
- 数据结构例程——线性表顺序存储的应用
- 数据结构例程——线性表顺序存储的应用
- 数据结构例程——串的顺序存储应用
- 数据结构学习笔记——顺序存储结构
- 数据结构——线性表的顺序存储结构
- 数据结构复习——线性表的顺序存储实现
- Java数据结构——线性表的顺序存储实现
- 数据结构——线性表的顺序存储
- Linux 习题3
- flume架构图
- JDBC连接和DBUtils的使用详解
- Java算法——判断一个数是否是回文数
- 51nod 1586 约数和
- 【数据结构】顺序存储——定义
- 第六周LeetCode
- 【小项目】Spring boot基于Redis缓存商城分类,商品信息(含源码下载)
- Executing an update/delete query(未开启事务)
- Educational Codeforces Round 30
- 去除数组重复元素的四种方法
- 各个模型特征总结学习
- js笔记—— 基础部分一
- 问题总结(1)