数据结构
通过关键点快速回忆数据结构中的知识点
爱笑的贾森
只有努力了才知道自己想要什么
展开
-
堆排序的两个点
思路:先将arr进行堆排序(大顶堆),然后将最顶的数据与树的最后一个(在arr中也就是最后一个值)进行交换;然后继续对arr-1的数组进行堆排序,并继续进行交换 需要注意的三个点 arr.length/2 -1为什么可以表示最后最小的子树。因为子节点的父节点是(n-1)/2 交换前需要对数组进行一个从最低端的树往上一次排序,这一步后,树有了整体的大小阶层,以后当顶部与最后一个值交换后,就不用从低往上排列整颗树了,只需从上往下对比子节点即可原创 2023-03-14 15:35:15 · 40 阅读 · 0 评论 -
链表注意事项
单链表在删除自身节点的时候,需要知道前一个节点 链表的头需要单独的引用保存,当用到时进行赋值,而不要直接操作该引用原创 2023-03-12 18:56:11 · 96 阅读 · 0 评论 -
递归的使用
底层使用栈实现的 递归必须向退出递归条件逼近,必须要有退出条件 递归实现八皇后问题 这里有一个小技巧,对于只需要一个返回值,而且很复杂的操作,统一封装成一个接口 三个关键点 使用以为数组来表示,下标表示第几个皇后,数值表示皇后的具体位置 将判断皇后是否冲突封装成一个方法 对于是否在一条线上的判断使用abs(j-i)==abs(array[j]-array[i]) 递归实现迷宫问题 关键点是规则的定义,0表示没有走过,1表示墙,2表示走的通,3表示走过了走不通原创 2023-03-12 14:48:44 · 34 阅读 · 0 评论 -
数组实现栈
与队的区别 只有表示栈顶的top原创 2023-03-12 10:28:06 · 36 阅读 · 0 评论 -
使用数组来表示队列
注意注意点。原创 2023-03-12 10:25:11 · 73 阅读 · 0 评论 -
稀疏数组的转换
核心思想:将稀疏数组中的非零数拿出来单独存放到一个较小的数组中,这样能够节省空间 关键点: 遍历稀疏数组,得到非零数的个数num 创建一个较小数组,数组大小为[num+1][3] +1 是因为数组要保存稀疏数组的大小和非零的个数原创 2023-03-12 09:11:30 · 40 阅读 · 0 评论