摘要: /* 由红黑两色节点组成的二叉搜索树若满足以下条件,即为"红黑树(red-black tree)" (1)树根始终为黑色 (2)外部节点均为黑色 (3)其余节点若为红色,则其孩子节点必为黑色 (4)从任一外部节点到根节点的沿途,黑节点的数目相等 */ #include "BST.hpp" template class RedBlack : public BST { prote... 阅读全文
posted @ 2018-11-11 21:49 迷心迷 阅读(204) 评论(0) 推荐(0) 编辑
摘要: #include "Vector.hpp" #define BTNodePosi(T) BTNode* //B-树节点位置 //B-树节点模版类 template struct BTNode{ BTNodePosi(T) parent; //父节点 Vector key; //关键码向量 Vector child; //孩子向量(其长度总比key多一) ... 阅读全文
posted @ 2018-11-11 21:48 迷心迷 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include "BST.hpp" //伸展树 template class Splay : public BST { protected: BinNodePosi(T) splay(BinNodePosi(T) v); //将节点伸展至根 public: BinNodePosi(T) & search(const T& e) override; //查找 BinN... 阅读全文
posted @ 2018-11-11 21:47 迷心迷 阅读(195) 评论(0) 推荐(0) 编辑
摘要: #include "BinTree.hpp" //二叉搜索树 //任何一个二叉树是二叉搜索树,当且仅当其中序遍历序列单调非降 //词条模版类 template struct Entry { K key; V value; Entry(K k = K(), V v = V()) : key(k), value(v) {} Entry(Entr... 阅读全文
posted @ 2018-11-11 21:46 迷心迷 阅读(127) 评论(0) 推荐(0) 编辑
摘要: #include "BST.hpp" /* 任一节点v的平衡因子(balance factor)定义为"其左右子树的高度差",即 balFac(v) = height(lc(v)) - height(rc(c)) 本书中空树高度取-1,单节点子树(叶节点)高度取0 所谓AVL树,即平衡因子受限的二叉搜索树----其中各节点平衡因子的绝对值均不超过1 */ template... 阅读全文
posted @ 2018-11-11 21:46 迷心迷 阅读(138) 评论(0) 推荐(0) 编辑
摘要: #include "Stack.hpp" #include "Queue.hpp" typedef enum { UNDISCOVERED, DISCOVERED, VISITED }VStatus; //顶点状态 typedef enum { UNDETERMINED, TREE, CROSS, FORWARD, BACK... 阅读全文
posted @ 2018-11-11 21:45 迷心迷 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 节点 BinNode.h BinTree.h 阅读全文
posted @ 2018-11-11 21:44 迷心迷 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 队列可以基于前面的List实现 阅读全文
posted @ 2018-11-11 21:42 迷心迷 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 栈的特点时,先进后出 可以基于前面的向量实现 Stack.h 阅读全文
posted @ 2018-11-11 21:41 迷心迷 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 列表也是一组元素的集合。 特点是:增删快,查找慢。 列表和向量的区别是向量的元素都是在内存中连续存储,列表则不能保证元素在内存中是否连续存储。 元素节点 ListNode.h ListNode.cpp 列表ADT List.h List.cpp 阅读全文
posted @ 2018-11-11 21:39 迷心迷 阅读(216) 评论(0) 推荐(0) 编辑