首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
《数据结构与算法》学习笔记
Createsequence
创建于2024-05-14
订阅专栏
《数据结构与算法》学习笔记 ~
等 1 人订阅
共18篇文章
创建于2024-05-14
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
数据结构与算法(一):队列
1.什么是队列 队列是一种特殊的线性表。 队列元素的进出遵循“先进先出”原则:即只允许在前端(front)也就是队头进行删除操作,而只能在后端(rear)也就是队尾进行插入操作。 如图所示: 队列的最
数据结构与算法(二):单链表
1.什么是链表 链表是一种数据结构,跟数组不同,链表不需要连续的内存空间,而是通过指针将零散的内存块连接起来。 因此,链表的查找需要通过节点按顺序遍历,而增加与删除通过只需要操作指针指向,这也造成了相
数据结构与算法(三):双向连表
1.双向链表 双向链表与单链表基本相似,但是最大的区别在于双向链表在节点中除了指向下一节点的next指针外,还有指向前一节点的prev指针,这使得双向链表在可以在任意节点从头尾两个方向进行遍历,是“双
数据结构与算法(四):栈
1.什么是栈 栈(stack)是一种先进后出的有序列表,其中的元素只能在线性表的同一端进出, 允许元素插入和删除的一端被称为栈顶(top),固定的另一端被称为栈底(button)。 2.数组简单实现栈
数据结构与算法(五):栈与递归实现计算器功能
1.计算器的计算思路分析 我们以计算3+8*2-6这个算式为例: 将算式解析为数字和符号:3,+,8,*,2,-,6 准备一个用于存放数字的数字栈numStack,还有一个存放运算符号的符号栈symb
数据结构与算法(六):递归
1.什么是递归 所谓递归,简单点来说,就是一个函数直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 引用知乎大佬的例子: 我们把查字典理解成一
数据结构与算法(七):迷宫回溯和八皇后问题
1.迷宫回溯问题 1.1.问题 一个7*8的数组模拟迷宫,障碍用1表示,通路使用0表示,给定起点(1,1)和终点(6,5),要求给出起点到终点的通路 1.2.解题思路 首先,我们需要给程序一个寻向的基
数据结构与算法(八):排序
概述 1.排序的分类 排序分为两类: 内部排序:若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。 外部排序:若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排
数据结构与算法(九):查找
概述 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。 定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。
数据结构与算法(十):哈希表
1.什么是哈希表 1.1.概述 通俗的理解一下: 如果我们有n个元素要存储,那我们就用l个内存单元来存储他们 然后我们有一个哈希函数f(x),我们把元素n用函数计算得到哈希值,也就是f(n) f(n)
数据结构与算法(十一):二叉树
1.什么是二叉树 1.1.概述 首先,需要了解树这种数据结构的定义: 树的结构类似现实中的树,一个父节点有若干子节点,而一个子节点又有若干子节点,以此类推。 1.2.名词解释 名称 含义 根节点 树的
数据结构与算法(十二):堆排序
1.什么是堆排序 1.1.堆,堆排序 对于“堆”我们可以理解为具有以下性质的完全二叉树: 每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆 每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆
数据结构与算法(十三):赫夫曼树
1.什么是赫夫曼树 给定n个权值作为n个叶子节点,构造一课二叉树,若该树的带权路径长度和(wpl)达到最小,称这样的二叉树为最优二叉树,也就是赫夫曼树。 要理解这句话,我们需要了解几个关键词: 路径:
数据结构与算法(十四):赫夫曼编码
1.什么是赫夫曼编码 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来
数据结构与算法(十五):二叉排序树
1.什么是二叉排序树 当我们使用需要对数列进行操作的时候,我们原本有以下选择: 数组:不排序的数组插入快而查找慢,排序数组通过算法可以快速查找,但是插入效率又会受到影响 链表:不管是否有序,插入都快,
数据结构与算法(十六):平衡二叉树
1.什么是平衡二叉树 1.1.概述 平衡二叉树(AVL树)是一种带有平衡条件的二叉搜索树。它的特性如下: AVL树的左右两个子树的高度差的绝对值不超过1 AVL树的左右两个子树都是一棵平衡二叉树 举个
数据结构与算法(十七):B树,B+树
1.什么是多路查找树 二叉树有诸多便利之处,但是当二叉树节点极多时,二叉树的构建速度就会受影响,而且过高的层数也会导致对树的操作效率降低。 对于树的查找而言,树的高度决定了查找的时间下限,但是同样数量
数据结构与算法(十八):图
1.什么是图 1.1.概述 首先,我们已经在之前学习过了树这种数据结构,树能反映一对多的关系,但是却无法反映多对多的关系,因此我们引入了图这种数据结构。 对于图,其节点也可以叫做顶点,每个节点具有零或