22 22
3年前
一篇文章帮你搞懂二叉堆的那些事
【系列文章推荐阅读】1.什么是二叉堆?“二叉”自不必多说,本章主要介绍的树都是二叉树。那么啥是“堆”呢?我们在日常生活中,通常会说“一堆东西”或者“堆东西”,这里的“堆”,通常指重叠放置的许多东西。我们在堆东西的时候,肯定都有一个经验,即:为了使这堆东西更稳定,会将比较重的、大的东西放在下面,比较轻的、小的东西放在上面。这个经验放在数据结
22 22
3年前
一文看懂二叉树的概念和原理
系列文章推荐阅读0.前言到目前为止,我们已经讲述了、、、四种数据结构,它们有一个共同的特点,就是它们都是线性表,换句话来说,它们都是线性结构,像一根绳子一样。在文章已经介绍过线性表的定义了,即由若干元素按照线性结构(一对一的关系)组成的有限序列。关键词是一对一的关系。显然,在复杂的现实社会中,这种一对一的关系是不能较好的满足我们的需求的。比如
Wesley13 Wesley13
2年前
java实现判断两个二叉树是否相同
1、定义树节点类:节点值、左节点、右节点、构造器2、先判断树是否为空的情况3、树不为空时,判断节点所指的值是否相等,若相等,则递归判断节点的左右节点是否相同,相同则返回true/\\ \Definitionforbinarytree \publicclassTreeNode{ \    intval
Wesley13 Wesley13
2年前
PHP数据结构之实现链式二叉树与遍历
<?php/ 我写的PHP都是从C语言的数据结构中演化而来
Wesley13 Wesley13
2年前
444,二叉树的序列化与反序列化
!(https://oscimg.oschina.net/oscnet/2af309d8a9c94452a07b615ec9c55b2e.png)It'seasytofindifyouknowwhatyou'relookingfor.如果你知道自己想追求什么,就很容易成功。问题描述
Wesley13 Wesley13
2年前
2020面试题(答案中)
平衡二叉搜索树必须是“平衡”的情况下,其大部分操作的复杂度才能达到O(logn)。你可以按任意顺序位置插入/删除数据,或者使用AVL树或者红黑树,但是在堆中实际上不需要整棵树都是有序的。我们只需要满足对属性即可,所以在堆中平衡不是问题。因为堆中数据的组织方式可以保证O(logn)的性能。搜索在二叉树中搜索会很快,但是在堆中搜索会
Wesley13 Wesley13
2年前
B
BTreeBTree又叫做B树,和平衡二叉树不同的地方在于B树是多叉树(平衡多路查找树),Oracle和MongoDB的索引技术就是基于B树的数据结构,B树也可以看作是对23查找树的一种扩展。一个m阶的BTree有以下性质1.每个节点最多有m个子节点;2.每个非叶子节点(根节点除外)至少含有m/2个子节点;3.
Wesley13 Wesley13
2年前
Java数据结构和算法(四)——栈
前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。  而本篇博客讲解的数据结构和算法更多是用作程序员的工具,它们作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生
Stella981 Stella981
2年前
Heapsort 和 priority queue
一、二叉堆含义及属性:堆(heap)亦被称为:优先队列(priorityqueue),是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解
Wesley13 Wesley13
2年前
Java 集合原理算法之排序二叉树相关题目
!(https://oscimg.oschina.net/oscnet/cc862b3079e04c7ba2400725e984a6ef.png)码农每日一题!(https://oscimg.oschina.net/oscnet/2e7f5f6ccd8947658153a4b910f40843.jpg)长按关注