怎么说呢,在大二第一学期过的也时模模糊糊,在放假前和自己约定好的复习一遍数据结构再写一篇帖子的计划现在就正式开始了!
本贴参考课本为南开大学出版社周桂树等编—《数据结构》
本贴使用的编程语言为C语言
数据结构目录
线性表
1.线性表的概念定义
线性表的由一些有相同类型的数据组成的有限序列 可以记为 L=(a1,a2,a3,a4,a5,…,an)
线性表的数据元素之间存在前后次序的关系, ai为ai+1的直接前驱 ,ai+1为ai的直接后驱
线性表的储存结构为以下两种
1. 定长的顺序储存结构, 简称顺序表
2. 变长的线性储存结构, 也就是曾经很折磨人的链表!
2.顺序表
- 顺序表的定义
顺序表可以称之为数组,顺序表和大一学习C语言时的数组非常的相似,可以说时一种东西! - 储存结构
可以用简单的数据类型和一个表的长度来表示,也可以用结构类型定义更多的元素
#define MAXSIZE 1024
typedef int elemtype;
typedef struct sequlist{
elemtype data[MAXSIZE];
int last;//这里是表中最后一个元素的下标(也不一定,看完整的代码的定义了)
}SequenList;
- 顺序表的初始化
构建一个空表,申请空间,如果申请成功,L中的last初始化为-1,返回首地址
SequenList *Init()
{
SequenList *L;//定义表的指针变量
L=(SequenList *)malloc(size(SequenList));//申请空间
if(L!=