数据结构
心安成长
对计算机工程和数据分析感兴趣的码农一枚,愿与大家分享科技那点事儿,算法分享,题目解读。让我们一起畅游AI浪潮。
展开
-
面试里必须搞懂----二叉树的前中后遍历
目录概述中序遍历前序遍历后续遍历 概述 二叉树在面试中占有不可或缺地位,所有要至少要搞明白前中后序的非递归写法,非递归遍历的原理是借助一个辅助栈。 中序遍历 中序遍历是左根右。 如果当前二叉树有左子树,那么就入栈。 如果没有左子数,那么先输出当前栈顶元素,然后p在走到右子数,不断的重复这个过程,说实话这个代码不好想 public void midOrder(TreeNode root){ Stack<TreeNode> stack = new Stack<TreeNode>();原创 2020-09-29 13:13:35 · 231 阅读 · 0 评论 -
面试里必须搞懂的堆排序
目录前言二叉堆介绍构建二叉堆堆排序 前言 面试官很喜欢的一个问题就是你会堆排序吗?会的话,手写一个吧 二叉堆介绍 我们知道,树有很多种,最常用的就是二叉树了。二叉树又有满二叉树和完全二叉树。而二叉堆,就是基于完全二叉树的一种数据结构。它有以下两个特性。 首先它是一个完全二叉树 其次,堆中的任意一个父节点的值都大于等于(或小于)它的左右孩子节点。 因此,根据第二个特性,就把二叉堆分为大顶堆(或叫最大堆),和小顶堆(或叫最小堆)。 顾名思义,大顶堆,就是父节点大于等于左右孩子节点的堆,小顶堆就是父节点小于左转载 2020-09-24 09:10:35 · 485 阅读 · 0 评论