线性表
线性表的顺序存储:存储数据元素时,把数据元素按照逻辑关系(先后顺序),依次存储在一段连
续的内存空间,借助元素在这段连续空间的地址,来表示数据之间的先后关系,就叫做顺序存储 。
顺序表的缺点:
- 要求申请一段连续的内存空间,申请时就已经固定大小,空间不能再动态的添加删除,比较占用资源;
- 插入、删除操作比较麻烦,需要移动成片的空间。
线性表的链式存储:逻辑结构为线性结构,存储结构为链式存储的一种数据结构。数据元素之间的位置是任意的(需要有这个元素才创建申请空间),在一个数据元素中由两部分构成,数据内容与关系。关系:通过指针元素来表示,存储下一个数据元素的地址。
-
头节点:在链表中,通常会添加一个不存储数据的节点,就是空节点,作为链表的第一个节点,之后的元素节点,从第二个开始,操作链表就不会操作到第一个节点,方便链表的操作。把人为添加的第一个节点叫做头节点;
-
创建
struct node * head = malloc(sizeof(struct node));
head->next = NULL;
-
链表:逻辑结构:线性结构(先后关系)存储结构:链式存储