数据结构与算法知识总结(中)

(作者:咸鱼;撰写时间:2020年5月6日)
一、线性表的定义及特征
1、定义:由n(n>=0)个相同类型数据元素(结点)a1,a2,a3,…an组成的有序序列(a1,a2,…an);其中,n为数据元素的个数,也称表的长度;空表n=0,记为()。
2、特征:
(1)、在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,且仅有一个直接后继a2;
(2)、有且仅有一个终端结点an,它没有直接后继,且仅有一个直接前趋an-1;
(3)、其余的内部结点ai(2<=i<=n-1)都有且仅有一个直接前趋ai-1和一个直接后继ai+1。
3、基本运算:
(1)、求表长:求线性表中元素的个数。
(2)、遍历:从左到右(或从右到左)扫描(或读取)表中的各元素。
(3)、按编号查找:找出表中第i个元素。
(4)、按特征查找:按某个特定值查找线性表。
(5)、插入:在第i个位置上(即原第i个元素前)插入一个新元素。
(6)、删除:删除原表中的第i个元素。
(7)、排序:按某元素的特征值的递增(或递减)排序,重排表中各元素。
4、线性表的两种存储结构
(1)、顺序表:顺序表是很守规矩的,每个元素都前后有序、整整齐齐地站在一起。
(2)、链表:链表不是地址连续的空间,他的插入和删除不需要移动元素,它看到内存有空余地址就可以毫无顾忌地挤进去,所以我们叫它“调皮的链表”。
A、单链表的结构:单链表中构成链表的结点只有一个指向直接后继结点的指针域;其结构特点:逻辑上相邻的数据元素在物理上不一定相邻。
在这里插入图片描述
B、单链表结点的插入:因为单链表不能回头,只能往下指,所以指针P一定是定位在索引3的前一个位置2;P的next是a3,a3就是S的next,所以我们把P的next指向S的next,S完整了之后将整个S赋值给P的next,这样就完成了X的插入,如下图所示。
在这里插入图片描述
C、单链表结点的删除:指针P还是定位在索引的前一个位置,把a2直接从链表中移除,回收到存储池中,将P的next直接赋值给a3的next,这样就完成了单链表结点的删除,入下图所示;
在这里插入图片描述
二、堆栈和队列
1、蛮不讲理的堆栈
(1)、堆栈的定义:简称栈,是限定只能在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端称作“栈顶”,另一端称作“栈底”。通常将元素插入栈顶的操作称为“入栈”(进栈或压栈),称删除栈顶元素的操作称为“出栈”。堆栈如下图所示。
在这里插入图片描述
(2)、堆栈的特点:堆栈的特点是“后进先出”。它后面来,反而它能最先走,所以我们说它是“蛮不讲理的堆栈”。堆栈是特殊的线性表。
(3)、堆栈的基本运算:
A、StackInit()初始化堆栈。
B、StackEmpty(s)判定栈是否为空。
C、StackLength(s)求栈s的长度。
D、GetTop(s)获取栈顶元素的值。
E、Push(s,e)将元素e进栈。
F、Pop(s),出栈(删除栈顶元素)。
(4)、栈的存储结构
A、顺序栈——采用顺序结构存储。
B、链栈——采用链式存储结构。
2、乖乖排队的队列
(1)、队列的定义:队列简称队,是限定只能在表的一端作插入运算、在另一端作删除运算的线性表。在表中,允许插入的一端叫“队尾”,允许删除的另一端叫“队首”(或“队头”);通常将元素插入队尾的操作称为入队列(或入队),称删除队首元素的操作称为出队列(或出队)。
(2)、队列的特点:队列的特点是“先进先出”这就符合我们乖乖排队的思想,也算乖乖守规矩了。
(3)、队列的存储结构
A、顺序队列——采用顺序结构存储。
B、链式队列——采用链式结构存储。
(4)、顺序队列的基本运算
A、初始化队列InitQueue()。
B、判定队列q是否为空QueueEmpty(q)。
C、求队列q的长度QueueLength(q)。
D、AddQueue(q,e)将元素e入队。
E、DeleteQueue(q)删除队首元素。
三、数组与矩阵
1、数组的定义:所谓数组,是有序的元素序列。
2、矩阵的定义:在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集何。
(1)、几种特殊矩阵,如下图所示。
在这里插入图片描述
在这里插入图片描述
(2)、特殊矩阵的压缩存储
A、对称矩阵:对于一个n阶矩阵A中的元素满足:aij = aji(0<=i<=i,0<=j<=n),则称A为对称矩阵。
在这里插入图片描述
B、三角矩阵:当一个方阵A n x n的主对角以上或以下的所有元素皆为常数时,该矩阵称为三角矩阵。三角矩阵有上三角矩阵和下三角矩阵两种。
在这里插入图片描述
C、对角矩阵:该矩阵中所有非零元素集中在主对角线为中心的带状区域中,如下图的三对角矩阵。
在这里插入图片描述
(3)、沙漠中的绿洲——稀疏矩阵的非零元素
A、定义:当一个mn的矩阵A中有k个非零元素,若k<<mn,且这些非零元素在矩阵中的分布又没有一定的规律,则称这种矩阵为稀疏矩阵。
在这里插入图片描述
B、三元组顺序存储表:假设以顺序存储结构来表示三元组表,则可以得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。三元组顺序表的类型描述如下。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值