线性表的顺序存储是指在内存中,用一块连续的存储空间来存储线性表的各个元素。在C语言里,一维数组在内存中的存储空间就是一块连续的存储区域。因此使用以为数组来表示线性表的顺序存储。
我们需要考虑到,因为这个数组是动态变化的,那么这个数组应该数足够大的,因此我们在初始化这个数组的时候,应该给予其相关问题的最大值。而且我们还需要有一个标记能够告诉我们该数组中已存放的元素的末尾。
返回表中元素的长度时,直接返回last+1即可
#define MAXSIZE 20 //规定最大元素容量
typedef int ElementType //表示元素类型
typedef int Position //标记元素末尾
struct Lnode { //将数组和标记放入到结构体中成为一个整体
ElementType Data[MAXSIZE];
Position last; //last表示数组中的最后一个元素的位置(数组下标) 空表我们一般赋值为-1
};
这样我们就有了一个数组Data的变量last组成的结构体作为顺序表。
接下来来看一下顺序表的相关操作:
前提:
我们在操作顺序表的时候,如果直接将结构体作为参数穿来穿去的话是行不通的,因为C语言中的函数参数是值传递(可以查看我的上一篇文章)。因此我们使用结构体指针来传递。
typedef struct Lnode * List; //定义结构体指针List
初始化一个顺序表