
数据结构
文章平均质量分 75
我永远信仰
收藏从未停止,学习从不开始
展开
-
二叉树的前中后序遍历(java递归、迭代分别实现)
文章目录代码实现(递归)代码实现(迭代)前序遍历后序遍历中序遍历代码实现(递归)递归算法的三个要素:确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定单层递归的逻辑: 确定每一原创 2021-08-02 16:24:21 · 728 阅读 · 1 评论 -
二叉树入门知识——一篇了解二叉树
文章目录常接触的二叉树满二叉树完全二叉树二叉搜索树平衡二叉搜索树二叉树的存储方式二叉树的遍历方式代码实现(递归)常接触的二叉树满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。如图所示:这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。完全二叉树什么是完全二叉树?完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若转载 2021-08-02 11:16:56 · 555 阅读 · 0 评论 -
栈与队列基础理论知识
来看看栈和队列不为人知的一面我想栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出。如图所示:那么我这里在列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,相信使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。C++中stack 是容器么?我们使用的stack是属于那个版本的STL?我们使用的STL中stack是如何实现的?stack 提供迭代器来遍历stack空间么?相信这四个问题并不那么好回答, 因为一些同学使用数据结构会停留在非常表转载 2021-07-21 09:23:30 · 187 阅读 · 0 评论 -
进来复习一下哈希表
文章目录哈希表哈希函数哈希碰撞拉链法线性探测法常见的三种哈希结构总结哈希表首先什么是 哈希表,哈希表(英文名字为Hash table,国内也有一些算法书籍翻译为散列表,大家看到这两个名称知道都是指hash table就可以了)。哈希表是根据关键码的值而直接进行访问的数据结构。这么这官方的解释可能有点懵,其实直白来讲其实数组就是一张哈希表。哈希表中关键码就是数组的索引下表,然后通过下表直接访问数组中的元素,如下图所示:那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集转载 2021-06-25 17:16:04 · 375 阅读 · 0 评论 -
Java手写单链表(头插法和尾插法)
手写单链表定义一个ListNode类public class ListNode { public int val; public ListNode next; public ListNode() { } public ListNode(int val) { this.val = val; } public ListNode(int val, ListNode next) { this.val = val;原创 2021-06-21 21:22:02 · 467 阅读 · 2 评论