线性表(List):零个或多个数据源数的有限序列。
- 顺序存储结构
- 链式存储结构 : 单链表、静态链表、双向链表、循环链表
一、顺序存储结构
typedef void List_Node; //用于复用加入元素
typedef unsigned long Seqlist_Node; //为了重复使用,所以在这里使用的地址来操作的, 这里要用unsigned long类型,unsingesd int类型是在32位系统下使用的
typedef struct //存储线性表的结构体
{
int MAXSIZE; //线性表最大存储
int length; //线性表当前存储大小
Seqlist_Node* node; //指向下一个元素的地址,这样做的好处是能动态的申请数组,如果不这样,这里是数组
}Tseqlist;
创建和销毁函数:
Tseqlist* List_Create(int MAXSIZE) //创建线性表
{
Tseqlist* list = NULL;
if(MAXSIZE > 0)
{
list = (Tseqlist*)malloc( sizeof(Tseqlist) + sizeof(Seqlist_Node)*MAXSIZE );
}
if(list != NULL)
{
list->MAXSIZE = MAXSIZE;
list->length = 0;
list->node = (Seqlist_Node*)(list + 1); //node指向下一个结构体元素的首地址
}
retu