📄 rbtree.h
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -