数据结构线性表之吐血攻略

版权声明:本文为博主原创文章,未经博主允许不得转载。 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 插入结点

2.2.2 删除结点

2.3 循环链表

2.3.1 循环单链表

2.3.2 循环双链表

2.4 静态链表


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。不同的是,这里的指针是结点的相对地址(数组下标),又称为游标。

与顺序表一样,静态链表也要预先分配一块连续的内存空间。


本文参考自:

张铭《数据结构与算法》

程杰《大话数据结构》

陈越,何钦铭《数据结构》

猜你喜欢

转载自blog.csdn.net/wydyd110/article/details/83106138