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