[小卓] 1.数据结构总结 线性表

绪论

总所周知,研究数据结构有三个最主要的内容,无论哪一种数据结构都是在研究结构的逻辑结构,物理结构(存储结构)和数据运算三个主要内容。

在严蔚敏版数据结构中,第一个被提及的数据结构是线性表。

线性表顾名思义,就是数据结构呈现一个线性结构,除了第一个元素外,其他每一个元素都有前驱结点,除最后一个元素以外,每一个元素都有后继结点

所有的数据结构最主要的都是操作数据的运算,而运算包括了创(创建)销(销毁)增(增加)删(删除)改(修改)查(查找)。

线性表的组成

定义线性表一般有两种方法,一种是定义静态线性表,另一种是定义动态线性表。

定义静态线性表的优点有代码简单,不用担心内存泄漏问题,另外在插入或者删除数据的时候更加简单操作

缺点也很明显,占用内存空间固定,无法扩展,因此需要在程序运行前,需要提前定义好数据所需空间不易变动

具体定义代码如下

#define MaxSize 50   // 定义静态线性表 最大大小
 typedef struct{
   // ElemType data[MaxSize];定义所需要的数据类型
 	int data[MaxSize];
 	int length;
 }SqList;

 void InitList(SqList &L){
 	for(int i = 0;i<MaxSize;i++){
 		L.data[i] = 0;
 	}
 	L.length = 0;
 }

定义动态线性表优点有可以动态定义数据空间大小,便于运行时改变数据所占空间

缺点就是插入数据和删除数据时会更麻烦

具体定义代码如下:

typedef struct 
{
	int * data;
	int MaxSize;
	int length;

}SqList;

void InitList(SqList &L){
	L.data = (int *)malloc(InitSize*sizeof(int));
	int length = 0;
	L.MaxSize = InitSize;
}

 

上一篇:Invert Level


下一篇:2.顺序表的定义(动态)