此博客是用于本人学习,定义和代码来源于[数据结构(C语言版)].严蔚敏 如果有错误,请指出(其实有阅读量就不错了...)
一.线性表线性表是最常用且最简单的一种数据结构。简言之,一个线性表是n个数据元素的有序序列。至于数据元素的具体含义,在不同情况下各有不同,在后面你会看到元素都是以ElemType表示,因为这个元素在程序里面有可能是整形,浮点数,字符,更有可能是结构体,具体定义要看需求。
线性表有可能是(字符)(A,B,C,D....Z),也有可能是(整形)(4,8,32,....100),更有可能结构体,如下。
而在数据结构中,线性表的实现常见的有两种方式:顺序表示和链式表示。
1.顺序表示
线性表的顺序表示指的是一组地址连续的存储单元依次存存储线性表的数据元素。
在我的理解里面,其实线性表的顺序表示指的是是预先分配好一个相对比较大的空间,然后把数据元素一个个放进去,他们之间的位置是“物理相邻”的。
示意图
//---------线性表的动态分配 顺序存储结构--------
#define LIST_INIT_SIZE 100 //线性表存储初始空间大小
#define LISTINCREMENT 10 //每次新增的空间大小
typedef struct {
ElemType *elem;
//存储空间基址,ElemType是基本的数据元素.
//至于具体是什么就看你自己定义了,刚刚初学可以定义为int
int length;
//当前长度
int listsize;
//分配的空间大小
}SqList;