1、线性表:是具有相同特性数据元素的一个有限序列。
相同特性:把同一类事物归类,方便批量处理。
有限:表中元素个数为n(n>=0)。
序列:表中元素排成一列,体现了一对一的逻辑特性。(排序后的序列称为有序序列,未排序的则称为无序序列,但都是序列。)
2、线性表的逻辑特性
只有一个表头元素,只有一个表尾元素,表头元素没有前驱,表尾元素没有后继,除表头和表位之外,其他元素只有一个直接前驱,也只有一个直接后继。
3、线性表的存储结构
线性表的存储结构有顺序存储结构和链式存储结构两种。前者称为顺序表,后者称为链表。
①顺序表
顺序表就是把线性表中的所有元素按照其逻辑顺序,依次存储从指定的存储位置开始的一块连续的存储空间中。
要求存储空间是连续的
②链表
在链式存储中,每个节点不仅包含所有元素的信息还包括元素之间逻辑关系的信息,如单链表中前驱结点包含后继结点的地址信息,这样就可以通过前驱结点中的地址信息找到后继结点的位置。
地皮上不仅有房子,还有指向下一个地皮的指针
单链表
带头结点的单链表
头指针head指向头结点,头结点的值域不含任何信息,从头结点的后继结点开始储存数据信息。头指针head始终不等于NULL,head->next等于NULL的时候,链表为空。
不带头结点的单链表
头指针head直接指向开始结点,当head等于NULL的时候,链表为空。
双链表
双链表就是在单链表的结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继找到前驱,
带头结点的双链表
不带头结点的双链表
循环单链表
将单链表的最后一个指针域指向链表中的第一个结点。
循环双链表
不含头结点的单双循环链