rbtree.h
来自「我的红黑树的c++实现。主要特点是可以用dot工具把红黑树画出来」· C头文件 代码 · 共 53 行
H
53 行
// file rbtree.h
//created by alpha 2008.11.3
#ifndef RBTREE_H
#define RBTREE_H
#define BLACK 0 //defination of RED & BLACK
#define RED 1
#include "rbtnode.h"
#include <string>
using namespace std;
class rbtree { //defination of RBTREE
friend void print(rbtnode *node);
public: //public interfaces
rbtree ();
//init the rbtree
bool init ();
rbtnode *getRoot(){return root;}
//visit the rbtree "t" in inOrder
void inOrder();
void preOrder();
void inOrder(rbtnode *node);
void preOrder(rbtnode *node,int level,int flag);
//insert initkey to rbtree
bool insert(int initkey);
bool insert();
bool delNode();
//delete key from rbtree
bool delNode (int delkey);
// print the rbtree
void print(rbtnode *node);
void print();
void toJpg(string name);
int getBh();
//find key in rbtree, return a rbtnode to rbtnode
rbtnode *find(int key);
int keyrank(int key); //ostree keyrank
int keyrank(rbtnode *node, int key);
private: //private members
int num; //number of nodes
rbtnode *root;
rbtnode *NIL;
void leftRotate (rbtnode *x);
void rightRotate (rbtnode *y);
void insertFixup (rbtnode *z);
void delFixup (rbtnode *x);
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?