
数据结构也要好好学啦~
文章平均质量分 89
持续更新优质数据结构知识题目,全方面搞定数据结构!
是瑶瑶子啦
旦旦而学之
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构】队列篇| 超清晰图解和详解:循环队列模拟、用栈实现队列、用队列实现栈
一、 模拟实现循环队列二、用栈实现队列⭐三、225. 用队列实现栈原创 2023-08-28 20:06:50 · 992 阅读 · 0 评论 -
数据结构】二叉树篇|超清晰图解和详解:后序篇
🍊 前序:它能获得的信息:当前节点,但是不难获得左右节点(或者可以叫做子树的信息),一般大多数情况。🍊后序:当前节点信息+左右子树信息。所以当一个二叉树的题目,在遍历的过程中不仅需要看遍历到的当前节点的信息时,还要看其子树的信息,那么通常要在后序位置上做文章,利用好递归函数的返回值——获取子树信息。—— 本质还是第二种二叉树问题:分解成子问题,利用好返回值原创 2023-08-27 20:30:40 · 1089 阅读 · 2 评论 -
【数据结构】二叉树篇|超清晰图解和详解:二叉树的序列化和反序列化
🍊 序列化:本质就是二叉树的遍历,就那么几个:前序、中序、后序、层序。而序列化只不过就是在遍历到节点时,把它记录下来,空节点也是节点,也要记录(一般就是#)。🍊反序列化:字符串构建二叉树,本质是子问题,也就是递归。原创 2023-08-27 19:44:15 · 1698 阅读 · 0 评论 -
【数据结构】二叉树篇|超清晰图解和详解:二叉树的最近公共祖先
首先要明白,当root为p,q的最近祖先节点,只有下面3种情况:1. p,q在root分别存在于root的左右子树中(异侧)——>root即为最近祖先节点2. p, q均在root的左侧——>p/q即为最近祖先节点3. p, q均在root的右侧——>同理原创 2023-08-14 17:37:02 · 5360 阅读 · 6 评论 -
【数据结构】二叉树篇|『构造二叉树』刷题
🍊 二叉树的构造问题一般都是使用「分解问题」的思路:构造整棵树 = 根节点 + 构造左子树 + 构造右子树( 关键在于明确递归函数的定义,然后利用这个定义,构建二叉树的套路很简单,先找到根节点,然后找到并递归构造左右子树即可)原创 2023-08-14 15:51:10 · 880 阅读 · 0 评论 -
【数据结构】二叉树篇| 纲领&思路02+刷题
【数据结构】二叉树篇| 纲领&思路01+刷题已经给出,这篇主要还是刷题,进行巩固🍊 不过新增了“二叉树的层序遍历”(第二题),我个人暂时认为它不属于前面所讲纲领两个模式的任何一个,所以我将它单独提出来。原创 2023-08-13 21:33:39 · 841 阅读 · 1 评论 -
【数据结构】二叉树篇| 纲领&思路01+刷题
所谓前序位置,就是刚进入一个节点(元素)的时候,后序位置就是即将离开一个节点(元素)的时候,那么进一步,你把代码写在不同位置,代码执行的时机也不同前序位置的代码只能从函数参数中获取父节点传递来的数据,而后序位置的代码不仅可以获取参数数据,还可以获取到子树通过函数返回值传递回来的数据。🌟二叉树的所有问题,就是让你在前中后序位置注入巧妙的代码逻辑,去达到自己的目的,你只需要单独思考每一个节点应该做什么,其他的不用你管,抛给二叉树遍历框架,递归会在所有节点上做相同的操作。原创 2023-08-13 19:48:23 · 846 阅读 · 1 评论 -
【Java】数据结构篇——Stack:经典栈OJ题 |超详题解代码
1、括号匹配问题⭐2、逆波兰表达式求值⭐3、最小栈⭐4、栈的压入、弹出序列⭐原创 2023-08-10 16:21:22 · 428 阅读 · 0 评论 -
【Java】数据结构篇:经典链表OJ题 |超详细图解+代码
💡Step1:找到链表中间节点利用快慢指针法:slow = slow.next; quick = quick.next.next;💡Step2:逆置后半部分链表💡Step3:判断回文原创 2023-08-01 16:43:15 · 615 阅读 · 1 评论 -
【数据结构】超详细讲解:算术表达式转化为后缀表达式、前缀表达式、表达式树的构建
中缀表达式:中缀表达式是我们常见的数学表达式,其中运算符放置在两个操作数中间,例如:3 + 4 * 2。在中缀表达式中,还可以包含括号,用于改变运算符的优先级。后缀表达式:后缀表达式(也称为逆波兰表达式)是一种将运算符放置在操作数后面的表达式,例如:3 4 2 * 1 5 - 2 ^ / +。在后缀表达式中,所有操作符的优先级相同,而括号则不再需要。前缀表达式:前缀表达式(也称为波兰表达式)是一种将运算符放置在操作数前面的表达式,例如:+ / * 3 4 2 ^ - 1 5 2。原创 2023-04-22 15:53:51 · 18014 阅读 · 11 评论 -
【数据结构】数组的顺序存储(1、2、3、n维数组的元素地址计算)|保姆级详解+图解
数组是一种特殊的的数据结构,在存储结构是顺序存储(一个连着一个),所有只要给定数组的维度,和各维度的长度,数组中元素个数就是确定的。且给出首元素的地址,例如根据A[i][j][k],的i、j、k就可以计算出该元素的地址(或与首元素的地址之差)在计算机中,内存储器的结构是一维的。对于一维数组,可以直接按照顺序直接存储对于常见的二维数组,通常采用两种方式实现物理结构上的一维顺序存储行优先:一行一行的存储,存完一行,再在这一行尾元素后面接着存储下一行列优先、原创 2023-04-05 10:52:34 · 19052 阅读 · 14 评论 -
【数据结构】特殊矩阵的压缩存储|保姆级详解+图解
在线性代数这门学科中已经学习了矩阵。在高级计算机语言中,矩阵常用二维数组表示。所谓**“压缩存储”**,目的在于节省空间!体现在,为多个值相同的元素只分配一个存储空间,多元素值为0的元素不分配空间二维数组A[n][n]和的写法是等价的。如果数组写法为,则说明指定了下标是从1开始存储元素。二维数组元素写为a[i][j],注意数组元素下标i和j通常是从0开始的。矩阵元素通常写为a i,j或者a(i),(j),注意这时的i和j代表的行号和列号,都是从1开始的!这里我们讨论两种特殊矩阵。原创 2023-04-05 09:04:31 · 9169 阅读 · 7 评论 -
【数据结构】夯实基础|线性表刷题01
不要被代码长度劝退了!都是很简单的操作,目的在于熟练掌握和使用数据结构!下面是用C语言描述的数据结构。严格意义上来说数据结构是门单独的课,用什么语言描述不是很重要,主要是学习如何构造相应的数据结构并且实现其相应操作。题目后面的⭐对应相应的难度(三个星其实也不是很难)原创 2023-03-21 20:20:00 · 832 阅读 · 12 评论