版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wydyd110/article/details/83106138
这是一篇闲狗写给闲狗看的线性表攻略。
目录
1 线性结构
线性表简称表,是零个或多个元素的有穷序列
2 链表(Linked List)
链表:一种物理存储单元上非连续、非顺序的存储结构。通过指针把一串存储结点链接成一个链。
存储结点一般由两部分组成:数据域+指针域(后继地址)
2.1 单链表(Singly Linked List)
2.1.1 不带头结点的单链表
2.1.2 带头结点的单链表
2.1.3 插入结点
2.1.4 删除结点
2.1.5 单链表上运算的分析
2.2 双链表
2.2.1 插入结点
经理p将一些设备分配给新来的员工q,
q再将自己的一些信息告诉经理p
1(华文课后题)完成在双循环链表结点p之后插入s的操作为AD
A、p->next->prev=s; s->prev=p; s->next=p->next; p->next=s; (4,2,1,3)
B、p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;(4,3,2,1)
解析:造成原来的p结点后来的next信息丢失
C、s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;(2,1,3,4)
解析:先更改p->next成s再更改p->next->prev,会造成原来的p结点后来的next信息丢失
D、s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;(1,4,2,3)
2.2.2 删除结点
1 (2016计算机联考真题)
2.3 循环链表
2.3.1 循环单链表
(1)带头结点的空链表
(2)带头结点,头指针的非空链表
(3)带头结点,尾指针的非空链表
2.3.2 循环双链表
2.4 静态链表
借助数组来描述线性表的链式存储结构,结点也有数据域data和指针域next。不同的是,这里的指针是结点的相对地址(数组下标),又称为游标。
与顺序表一样,静态链表也要预先分配一块连续的内存空间。
本文参考自:
张铭《数据结构与算法》
程杰《大话数据结构》
陈越,何钦铭《数据结构》