
数据结构
文章平均质量分 55
憨憨小江
这个作者很懒,什么都没留下…
展开
-
排序算法——全
算法的归纳原创 2022-09-06 20:09:22 · 368 阅读 · 0 评论 -
树的超详细解读
树的逻辑结构表示方法树形表示法文氏图表示法凹入表示法括号表示法A(B(E,F)),C(G(J)),D(H,I(K,L,M)))树的基本术语结点的度:树中某个结点的子树的个数树的度:树中各个结点中,最大值就是度,通常我们将度为m的树,称为m次树举个例子此为 一颗 3次树分支结点:度不为零的结点叶子结点:度为零的结点举个例子此处,D,I,J,G,H,F 都为叶子结点路径:一条路,长度等于通过结点数减1举个例子例如,A -J路径为:A - B - E -原创 2021-11-09 15:28:22 · 1751 阅读 · 0 评论 -
冒泡排序超详细解析
冒泡排序:这个名字起的十分形象,当你完全理解后,你就会发现它为什么叫冒泡排序了。首先,我们用一个简单的数组来开始剖析这个问题例如我们的数组是这样的我们第一趟从数组第一个来开始比较第一个数和第二个数比较,谁小谁就在前面,这里发现3 比 7 小,如此的话,我们不用进行互换的操作了再从第二个数字7开始与后一个比较这里发现- 1 比7 小,互换再继续如此的过程,直到全部比较完成,如此过后你会发现,最后一个数字,它是最大值。为什么会这样呢?原因是,我们一轮的过程中,越小的在越前面,每次比较,原创 2021-11-07 21:35:38 · 303 阅读 · 0 评论 -
用两个栈实现的队列(力扣)
用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )代码如下此代码为优化过后的代码,如果按平常的思维来说,一个用来输入,一个用来删除,这样的话,两个栈会倒来倒去,但其实我们可以发现,例如第一次我们导入过后,发现s2里面就是正常顺序底部元素,如果要删除的话,其实可以直接在这里开始删除,不必再把s2导入到s1中原创 2021-11-03 16:17:24 · 144 阅读 · 0 评论 -
队列的详细解读
队列的解读!定义底层实现原理非循环队列循环队列循环队列算法设计示例定义定义:操作受限的线性表,添加在一端进行,删除在另一端进行。特点:先进先出,其中的方法和栈有所类似底层实现原理非循环队列front 指队头rear 指队尾队空条件:front == rear队满条件:rear = Maxsize - 1我们先写一个队列的泛型类,做一些初始化的操作class SqQueueClass<E> { final int MaxSize = 100; private原创 2021-10-29 23:08:38 · 545 阅读 · 0 评论 -
用栈求解迷宫问题
用栈来求解迷宫问题,和用递归来求解迷宫问题,其实如出一辙,底层都是用到回溯。思路:拿到当前迷宫盒子时,我们有四个选择去走,我们就试一试所有路,如果说有一条路,到尽头的话,就称这为死路,我们得做一个标记,在迷宫上,这样子的话,如果回溯到上一级,就不会再走这条路了。这里先设一个类表示迷宫格子i 表示 行j 表示列di表示方位class Box { int i; int j; int di; public Box(int i1,int j1,int di1) {原创 2021-10-29 00:20:11 · 435 阅读 · 0 评论 -
链栈的底层原理
定义:链式存储的栈第一个节点是栈顶元素,最后一个为栈底元素链栈四要素栈空:head.next == null一般不会溢出进栈操作,插入到头节点出栈操作,返回首节点,并返回节点值底层原理判断是否为空public boolean empty() { return head.next == null; }进栈 public void push(E e) { LinkNode<E> s = new LinkNode<E>(e);原创 2021-10-28 15:45:35 · 399 阅读 · 0 评论