- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构b类红黑二叉树
#includestdio.h
#includemalloc.h
#includestring.h
#includewindows.h
#include stdlib.h
#define TRUE 1
#define BOOL int
#define FALSE 0
#define Status int
enum color_t
{
RED,BlACK
};
typedef struct RedBlackNode //红黑二叉树结构体
{
int data;
char phone[12];
char name[12]; //数据域
color_t color; //颜色
RedBlackNode *left; //左孩子
RedBlackNode *right; //右孩子
RedBlackNode *parent; //父亲节点
}RedBlackNode,*RBTree;
typedef struct LinkStack
{
RedBlackNode *rbtree;
struct LinkStack *next;
}LinkStack;
LinkStack * InitStack();
Status StackEmpty(LinkStack *L);
Status DestroyStack(LinkStack *L);
Status StackLength(LinkStack *L);
Status PushStack(LinkStack *L,RedBlackNode *r);
RedBlackNode * PopStack(LinkStack *L);
RedBlackNode *RBserach(RedBlackNode *rbtree,int key);
RedBlackNode *RBMinimum(RBTree *T);
RedBlackNode *RBMaximum(RBTree *T);
RedBlackNode *RBpioneer(RedBlackNode *T);
RedBlackNode *RBsucceed(RedBlackNode *T);
void left_rotate(RBTree *rbtree,RedBlackNode *T);
void right_rotate(RBTree *retree,RedBlackNode *T);
BOOL RBInsertNode(RBTree *T,int data);
int RBDeleteNode(RBTree *T, int data);
void RbTreeInsertAdjust(RBTree *T,RedBlackNode *p);
void RbTreeDeleteAdjust(RBTree *T,RedBlackNode *parent,RedBlackNode *x);
void Output(RedBlackNode *p);
void PreorderTraverse(RedBlackNode *T);
void InorderTraverse(RedBlackNode *T);
void PostorderTraverse(RedBlackNode *T);
int prerecursion(RedBlackNode *T);
int inrecursion(RedBlackNode *T);
int postrecursion(RedBlackNode *T);
void menu1();
void menu2();
void logon();
LinkStack * InitStack()
{
LinkStack *L;
L=(LinkStack *)malloc(sizeof(LinkStack));
L-next=NULL;
return L;
}
Status StackEmpty(LinkStack *L)
{
if(L-next)
{
return FALSE;
}
else
{
return TRUE;
}
}
Status DestroyStack(LinkStack *L)
{
LinkStack *p,*r,*q;
p=L-next;
r=L;
if(p==NULL)
{
return FALSE;
}
while(p!=N
文档评论(0)