作者: 芝士小熊饼干
系列专栏: 数据结构->线性表
支持我: 点赞 +收藏 ⭐ +留言
: 新星计划参与者,创作不易。
”十年运道龙困井,一朝得势入青云,金鲤岂是池中物,一遇风雨变化龙。"
官方解释:
线性表的顺序储存是指,在内存中用一组地址连续的储存单元一次存储线性表中的各个数据元素。采用顺序存储结构的线性表称为顺序表。
a1的储存地址称为线性表的起始位置或基地址。
线性表的顺序存储结构是一种随机存取的储存结构。
顺序表的存储结构通常用一维数组来描述,数组的下标与元素在线性表中的序号相对应。
C语言实现定义:
#include
#include
#define MAXSIZE 100 //全局变量
#define ElemType int //elemtype 翻译元素的类型
#define OVERFLOW -1
#define TURE 1
#define LIST_MAX_SIZE 10
//顺序储存结构的类型定义
//1
typedef struct //结构体
{
//elem 是element元素的缩写
ElemType elem [MAXSIZE]; //储存线性表中数据元素的数组 elemtype 所有可能的类型
int length; //length 长 线性表当前的长度
}Seqlist; //顺序表
//2
typedef struct
{
ElemType *elem;//线性表中数据元素的基地址
int length; //线性表的当前长度
int listsize; //当前为线性表分配的储存容量
/* data */
}SeqList;
数据元素a1的序号为1,而其对应的数组下标为0。
SeqList L ,将L定义为SeqLis类型的变量;SeqLis *L 将L定义为指向SeqLis类型的指针。
构造一个空的顺序表,并为其分配存储空间
//初始化顺序表
typedef int Status; //status 作为函数类型,为函数返回的值的类型,它不是c语言中的关键字,也不是c语言库函数里面的库函数
//status是我们自己定义的一个关键字
Status InitList(SeqList*L)
{//初始化顺序表
L->elem=(ElemType*)malloc (MAXSIZE*sizeof(ElemType));//分配储存空间
//malloc函数的功能是开辟指定字节大小的内存空间,如果开辟成功返回该空间的首地址,如果开辟失败返回NULL。
//malloc函数开辟好空间后,不对空间内容做任何初始化,空间内的数据为随机值。
if(!L->elem) return OVERFLOW;//储存空间分配失败
L->length=0;//当前线性表长度为0
L->listsize=LIST_MAX_SIZE; //初始化储存容量
return TURE;
}