
数据结构
文章平均质量分 71
little-peter
这个作者很懒,什么都没留下…
展开
-
堆(优先级队列)及TOPK问题详解
@[TOC]二叉树的顺序存储#存储方式老铁们首先声明一下,此堆非彼堆,jvm中有堆、栈等,属于存储结构,我们这里讨论的堆为数据结构。1.二叉树的顺序存储1.1存储方式使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示。1.2下标关系已知双亲(parent)的下标,则:左孩子(left)下标 = 2 * parent + 1;右孩子(right)下标 = 2 * parent + 2;原创 2021-10-22 22:58:42 · 526 阅读 · 0 评论 -
关于二叉树,我们必须知道的
树的应用完全二叉树平衡二叉树搜索二叉树二叉树的存储方式二叉树的遍历方式原创 2021-09-27 22:17:12 · 221 阅读 · 0 评论 -
栈与队列:设计循环队列、括号匹配、栈与队列相互实现等问题的解决
栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出。此处不多写。如图:有效的括号思路注:括号匹配是使用栈解决的经典问题。举个例子,linux系统中,cd这个进入目录的命令我们应该再熟悉不过了cd a/b/c/../../这个命令最后进入a目录,系统是如何知道进入了a目录呢 ,这就是栈的应用所以栈在计算机领域中应用是非常广泛的。有的朋友经常会想学的这些数据结构有什么用,也开发不了什么软件,大多数同学说的软件应该都是可视化的软件例如APP、网站之类的,那都是非常上层的应用了原创 2021-09-25 20:42:48 · 409 阅读 · 0 评论 -
链表简单习题
链表反转给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点链表为空,返回头节点定义两个结点 pre 为 null ,cur指向头节点遍历链表时,定义临时结点存放 cur 的下一结点,同时让 cur 指向 pre因为要向后遍历,pre 向后移到 cur 的位置,cur 移到刚刚定义的临时结点位置 (达到链表反转效果) …(以此循环)最后因 cur == null 跳出循环, pre 在cur 的前一位,所以返回 pre 即可class Sol.原创 2021-08-18 15:09:49 · 266 阅读 · 1 评论 -
栈必刷习题及解析
有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:falseclass Solution { ...原创 2021-07-24 23:26:41 · 347 阅读 · 1 评论 -
栈的基本方法及相关问题
栈(Stack):一种特殊的 线性表,其只允许在固定的一端(栈顶)进行插入和删除元素操作(另一端为栈底)。栈中的数据元素遵循先进后出(LIFO)的原则。栈的基本方法1.public stack();创建栈2. public E push(); 入栈3. public E pop(); 出栈(删除栈顶元素)4. public E peek()查看栈顶元素(不删除)5. public boolean empty(); 判断栈是否为空实现栈问题:中缀表达式转换成后缀表达式自己总结..原创 2021-07-10 18:57:23 · 487 阅读 · 0 评论 -
二叉树前序遍历、中序遍历、后序遍历、层序遍历简单理解,秒懂
文章开始前,说一句废话:希望大家对所学能认真好好理解,那样才能自己的东西,理解万岁!能到这里我相信大家最少知道二叉树是什么东西了吧,那我们直奔主题;前序遍历,中序遍历,后序遍历,层序遍历到底是什么一棵二叉树由根结点、左子树和右子树三部分组成,若规定 D、L、R 分别代表遍历根结点、遍历左子树、遍历右子树,我们开始讨论最常见的三种遍历方式DLR--前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 ) LDR--中序遍历(根在中,从左往右,一棵树的左子树永远在根.原创 2021-03-19 20:15:26 · 989 阅读 · 0 评论