在二叉搜索树查找(请戳我)一文中主要介绍了二叉搜索树的查找,本文将继续介绍其插入和删除操作。二叉搜索树的插入和删除关键在于在插入和删除的过程中如何继续保持二叉搜索树的性质。二叉搜索树结点定义如下:typedefstructBSTreeNode{Typekey;//关键字(键值)structBSTreeNode*left;//左孩子structBSTreeNode*right;//右孩子struct
分类:
编程语言 时间:
2020-11-23 12:28:22
阅读次数:
8
在二叉堆(请戳我)中介绍了二叉堆的概念以及基本性质,本文主要对二叉堆的主要实现进行分析。首先,还是给出上文中二叉堆的定义。template<classT>classMaxHeap{private:T*mHeap;//数据intmCapacity;//总的容量intmSize;//实际容量private://最大堆的向下调整算法voidfilterdown(intstart,intend
分类:
编程语言 时间:
2020-11-23 12:28:03
阅读次数:
6
堆的应用场景堆(heap)又被为优先队列(priorityqueue)。尽管名为优先队列,但堆并不是队列。回忆一下,在队列中,我们可以进行的限定操作是dequeue和enqueue。dequeue是按照进入队列的先后顺序来取出元素。而在堆中,我们不是按照元素进入队列的先后顺序取出元素的,而是按照元素的优先级取出元素。这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客
分类:
编程语言 时间:
2020-11-23 12:27:45
阅读次数:
6
Floyd(弗洛伊德)算法 B站大佬讲的Floyd(弗洛伊德)算法,清晰易懂。链接 例题 ...
分类:
编程语言 时间:
2020-11-23 12:17:15
阅读次数:
8
基本原理: 通过指针从头节点开始,将该链表的各节点依次接到临时指针的前面,然后返回临时指针所指向的地址。 算法分析: 第一:定义三个指针变量。一个用来存放下一个节点tem;一个用当做临时指针存放提取出来的节点h;一个用来指向该链表的头节点u。 第二:判断下一个节点(tem)是否为空,如果为不为空,则 ...
分类:
编程语言 时间:
2020-11-23 12:14:58
阅读次数:
8
基本原理: 通过利用队列对每一层的节点从左至右依次进队,然后对已经进队的上一层进行出队,直到所有队列全部出队,该函数结束。 算法分析: 第一,先将根节点的左右孩子进队,然后再访问根节点。(如果没有左右孩子则不进队,直接结束函数) 第二,判断队列是否为空,如果不为空,则进入循环体。 第三,先将出队一个 ...
分类:
编程语言 时间:
2020-11-21 12:47:49
阅读次数:
27
简单介绍了四毛子算法(Method of Four Russians)的一些简单应用。 ...
分类:
编程语言 时间:
2020-11-21 12:37:02
阅读次数:
15
Apriori算法 源码 具体原理先鸽了 下面是代码 view code #coding:utf-8 # generate data def genData(): return [['牛奶','啤酒','尿布'], ['牛奶','面包','黄油'], ['牛奶','尿布','饼干'], ['面包', ...
分类:
编程语言 时间:
2020-11-21 12:33:25
阅读次数:
20
练习1,1从一个简单程序开始1,将string头文件注释掉,重新编译这个程序,会发生什么事?目前还没有发现会发生什么事。2,将usingnamespacestd注释掉,重新编译,会发生什么事?3,将函数名main()改为my_main(),然后重新编译,有什么结果?练习1.2将上述程序的内容进行扩充(1)要求用户同时输入名字(firstname)和姓氏(lastname);(2)修改输出结果,同时
分类:
编程语言 时间:
2020-11-21 12:00:55
阅读次数:
4
题意描述 Bale Figures 给定多个立体方块的排布方式,求其组成的立体图形的表面积。 算法分析 根据 CSP-2020 可以看出,签到题的模式可能由数学题变为大模拟。 那么这种情况下多做思维难度不高,又需要代码能力的模拟题变的尤为重要。 这便是一道签到好题(确信 首先介绍一个很好想但是错误的 ...
分类:
其他好文 时间:
2020-11-21 11:53:07
阅读次数:
3