线性表(顺序表和链表)

2.1线性表的定义和基本操作

线性表的定义

在这里插入图片描述

线性表的基本操作

在这里插入图片描述
只有c++支持引用,c语言不支持引用。

2.2-1顺序表的定义(静态分配在栈区,动态分配申请的堆区的空间)

顺序表的定义

在这里插入图片描述

顺序表的实现——静态分配(使用静态数组)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

顺序表的实现——动态分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2-2顺序表的插入删除

顺序表的插入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

顺序表的删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2-3顺序表的查找

按位查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

按值查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3-1 单链表的定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不带头结点的单链表

在这里插入图片描述

带头结点的单链表

在这里插入图片描述
在这里插入图片描述

2.3-2 单链表的插入删除

按照位序插入

带头节点

在这里插入图片描述
在这里插入图片描述
下图 i 为位序,至少为1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不带头节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指定结点的后插操作

在这里插入图片描述
在这里插入图片描述

指定结点的前插操作

第一种办法:循环查找p的前驱 q,再对q后插
在这里插入图片描述
在这里插入图片描述
第二种方法:在要前插的那个节点后边 插入一个节点,交换这两个节点的数据,相当于实现前插了
在这里插入图片描述

按位序删除(带头结点)

在这里插入图片描述
在这里插入图片描述

指定结点的删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3-3单链表的查找

在这里插入图片描述

按位查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

按值查找

按值查找只能从头往后扫描
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3-4 单链表的建立(尾插法和头插法)

尾插法

初始化单链表
在这里插入图片描述
每次从头循环到尾,去添加一个新节点,很费时间
在这里插入图片描述
所以可以确定一个指针 r 直接指向最后一个节点。边添加节点,边移动表尾指针 r
在这里插入图片描述

头插法

在这里插入图片描述

2.3-5 双链表

在这里插入图片描述

双链表的初始化

在这里插入图片描述

双链表的插入

在这里插入图片描述
在这里插入图片描述

双链表的删除

在这里插入图片描述

双链表的遍历

在这里插入图片描述

2.3-6 循环链表

循环单链表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

循环双链表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3-7 静态链表

定义一个静态链表

在这里插入图片描述
下图是定义静态链表的一般方法
在这里插入图片描述
下图是王道书上定义静态链表的方法,SLinkList[MaxSize]像java中定义数组SLinkList[ ]
在这里插入图片描述
证明了图中结论
在这里插入图片描述

简单基本操作的实现

在这里插入图片描述
在这里插入图片描述
下图和上图一样,只是多一些笔记
在这里插入图片描述

2.3-8 顺序表的链表的比较

在这里插入图片描述
在这里插入图片描述
下图 声明数组啥的 在栈区,系统自动回收;malloc申请堆区内存,需要自己去释放申请的内存空间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开放式问题
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值