数据结构和算法
数据结构和算法篇
面汤放盐
这个作者很懒,什么都没留下…
展开
-
十大经典排序算法[java描述]
注意:原文地址:https://www.cnblogs.com/onepixel/p/7674659.html ,感谢作者贡献,如需删除请联系本人! 对原文中实现的语言改为java描述。目录0、算法概述1、冒泡排序(Bubble Sort)2、选择排序(Selection Sort)3、插入排序(Insertion Sort)4、希尔排序(Shell Sort)5、归...原创 2019-05-12 19:49:19 · 245 阅读 · 0 评论 -
树一:邂逅入门篇
一、树的概念树是一种典型的非线性结构,是表达有层次特性的图结构的一种方法。1.1 基本术语术语描述空树当n=0 时称为空树。根节点根节点是一个没有双亲节点的节点。一棵树最多一个。例如:A边节点之间的连线叶子节点没有孩子节点的节点。例如:E、J、K、和I兄弟节点同一双亲的孩子结点; 堂兄结点:同一层上结点祖先结点从根到该结点的所经...原创 2019-05-01 15:29:09 · 1026 阅读 · 0 评论 -
树二:code二叉树习题篇[java]
本篇列举二叉树常见问题、并给出java描述。查找二叉树中最大的算法,二叉树中搜索某个元素,将一个元素插入二叉树中,获取二叉树结点个数,逆向逐层输出树中的元素,二叉树高度,查找二叉树中最深结点,二叉树中叶子节点的个数,二叉树直径的算法,二叉树所有节点数据之和,输出从根结点到叶子节点的路径,根据中序、前序遍历构建二叉树,最近公共祖先LCA等原创 2019-05-04 00:08:35 · 308 阅读 · 0 评论 -
树三:N叉树篇
N 叉树/ 通用树二叉树最多有两个孩子,很容易用两个指针表示,但是针对有N个节点的孩子,有怎么表示呢,难道要用 N 个指针? (N叉树也可以称通用树)1.1 N 叉树 表示法同一个双亲结点的孩子结点从左至右排列。双亲结点只指向第一个孩子结点,去掉从双亲结点到其他孩子结点的指针。修改为让上一个兄弟结点指向下一个兄弟结点。这种表示叫做第一个孩子 / 下一个兄弟表示法。1.2...原创 2019-05-04 21:38:59 · 1082 阅读 · 0 评论 -
树四:线索二叉树篇
一、 线索二叉树1.1 概念线索二叉树遍历是一种不需要栈和队列的遍历方法,前、中、后序遍历需要栈作为辅助数据结构,层序遍历则需要使用队列作为辅助数据结构。而线索二叉树都不需要,是一种无栈、无队列的遍历。1.2 常规二叉树遍历的不足栈和队列需要存储空间很大任意一棵二叉树往往存在大量的空指针。例如n个节点的二叉树有n+1个空指针。它们占用的空间被浪费很难直接找到一个给定节点的后序节点。...原创 2019-05-05 22:25:42 · 1814 阅读 · 2 评论 -
树五:二叉搜索树篇
一、 二叉搜索树二叉搜索树见名知意,为搜索而生,平均搜索的时间(logn)1.1 二叉搜索树性质二叉查找树是一棵二叉树、其结点含有comparable类型的对象,并遵循以下规则:结点中的数据大于结点左子树中的所有数据。结点中的数据小于结点的右子树中的所有数据。左子树和右子树也都必须是二叉查找树1.2 二叉搜索树的结构描述[java]public class Binar...原创 2019-05-08 22:52:55 · 411 阅读 · 0 评论 -
树六:平衡二叉搜索树篇
一、平衡二叉搜索树1.1 概述不同类型的树在最坏情况下搜索操作的复杂度为O(n) ,其中n为树中的结点个数。当树为斜树时,就会出现该情况,所以是否可以通过限制树的高度,来降低时间复杂度。通常,高度平衡树用符号HB(k) 表示,其中k为左子树和右子树的高度差,把k叫做平衡因子。1.2 完全平衡二叉树在HB(k)中,如果k=0,那么把这种二叉搜索树叫做完全平衡二叉树。即左右子树高度差为0...原创 2019-05-11 22:40:13 · 234 阅读 · 0 评论 -
堆和二叉堆
一、 堆和二叉堆1.1 什么是堆堆是一棵具有特定性质的二叉树。堆的基本要求是堆中所有结点的值必须大于或等于(或小于或等于)其孩子结点的值。除此以外,所有叶子结点都是处于第 h 或 h - 1层(h为树的高度),其实堆也是一个完全二叉树。1.2 堆的类型最小堆: 结点的值必须小于或等于其孩子结点的值最大堆: 结点的值必须大于或等于其孩子结点的值1.3 二叉堆在二叉堆中,每个结...原创 2019-05-12 01:35:15 · 2803 阅读 · 0 评论