数据结构
WhiskyCocktail
现在还没什么可以简述的,慢慢来吧。猜猜我头像里的树什么名字。
展开
-
数据结构:堆之相关操作
要求: 1.0 实现大小堆 2.0 用堆实现优先级队列 3.0 堆排序1.0 大小堆的实现: 0.0 vector的相关操作为堆带来了方便,所以底层数据用Vector。 1.0 既然能用大小堆实现队列,那么堆就应该满足队列的特点:先进先出。 所以堆的pop()函数应该是堆顶弹出 2.0 为了减少代码量,用仿函数实现一个bool类型的operator()重载,在...原创 2018-03-14 18:57:01 · 226 阅读 · 0 评论 -
数据结构:二叉搜索树<递归+循环>
实现的操作 1.0 插入:找待插入的节点的位置(data_data左子树,data>_root->_data 右子树)data为待插入节点的值。 2.0 寻找:找节点的位置(data_data左子树,data>_root->_data 右子树)data为待插入节点的值。 注意:寻找的时候先考虑等于的情况,插入则最后考虑,以上返回值都为bool类型 3.0 删除:先找到待删除原创 2018-03-22 09:26:31 · 331 阅读 · 0 评论 -
数据结构:AVL树
AVL树基于二叉搜索树,为了解决快速查找出现次数最多的数,引入了键值对key value 二叉搜索树参考:点击打开链接 1.0 定义: 2.0 思路: 注: 红圈为插入的节点 上图情况1插入的节点为 23 上图情况1插入的节点为 27 3.0 代码: AVL.h #pragma once #include using names原创 2018-04-02 18:04:41 · 290 阅读 · 0 评论 -
数据结构:红黑树
1.0 红黑树的特性: 前提:红黑树也是特殊的二叉搜索树 (1) 每个节点或者是黑色,或者是红色。 (2) 根节点是黑色。 (3) 每个叶子节点是黑色。 [注意:这里叶子节点,是指为空的叶子节点! (4) 如果一个节点是红色的,则它的子节点必须是黑色的。 (5) 从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。 2.0 主要操作: 节点插入 Insert函数的实现 考原创 2018-04-11 15:33:48 · 257 阅读 · 0 评论 -
二叉树及其操作
为了实现后序线索化二叉树 多加了_parent指针域 但是没有更改其拷贝构造函数 先来研究线索化原因: n个节点对应2n个指针域 有效指针域n-1个(根节点没有) 所以无效指针域2n-(n-1)个而线索化就是把 这些空的指针域链接到其对应的前驱或者后继 对应三种线索化;前/中序/后 #incl...原创 2018-08-11 16:19:09 · 291 阅读 · 0 评论