线性表的本质:
由0个或多个数据元素组成的集合
数据元素之间是顺序的
数据元素个数是有限的
数据元素的类型必须是相同的
专业的定义:
线性表是具有相同类型的n(n>=0)个数据元素的有限序列(a0,a1,a2,...an)
ai是表项,n是长度
性质:
a0为线性表中的第一个元素,只有一个后继
an为线性表中的最后一个元素,只有一个前驱
除了a0和an之外的其他元素ai,既有一个直接前驱,也有一个直接后继
线性表能够逐项访问和顺序存取
线性表的操作
创建
销毁 //销毁这个序列,
清空 //有这个序列,但都被清空
删除
插入
获取表中某个位置的数据元素
获得线性表的长度
线性表的顺序存储结构
线性表的顺序结构指的是用一段地址连续的存储单元依次存储线性表的数据元素
优缺点
优点:可以快速的获得表中的数据
缺点:增加和删除的时候会有大量的节点移动
实例如下:
//seqlist.h文件
#ifndef __SEQLIST_H__
#define __SEQLIST_H__
typedef unsigned int SeqListNode;
typedef struct _list
{
int capacity; //最大容量
int length; //当前元素个数
SeqListNode *node; //起始地址
}SeqList;
SeqList *SeqList_Create(int capacity);
void SeqList_Destroy(SeqList *list);
void SeqList_Clear(SeqList *list);
int SeqList_Length(SeqList *list);
int SeqList_Capacity(SeqList *list);
int SeqList_Insert(SeqList *list,SeqListNode *node,