资源简介
广工数据结构课设,内含报告,源程序,非常完整!!!
代码片段和文件信息
#include
#include
#define OVERFLOW -1
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define LH +1 //左高
#define EH 0 //等高
#define RH -1 //右高
typedef int RcdType;
typedef int Status;
//存放输入数据的数组结构体
typedef struct ArrayNode{
RcdType data;
ArrayNode *next;
}ArrayNode *Array;
//平衡二叉树结构体
typedef struct BBSTNode{
RcdType data;
int bf;
BBSTNode *lchild *rchild;
}BBSTNode*BBSTree;
//链队列结构体
typedef struct LQNode{
BBSTree elem;
struct LQNode *next;
}LQNode *QueuePtr;
//队列结点结构体
typedef struct{
QueuePtr front;
QueuePtr rear;
}LQueue;
//栈结点结构体
typedef struct LSNode{
BBSTree data; //数据域
struct LSNode *next; //指针域
}LSNode *LStack; //结点和链栈类型
/*初始化一个链栈*/
Status InitStack_LS(LStack &S){
S = NULL;
}
/*进栈操作*/
Status Push_LS(LStack &S BBSTree e){
LSNode *t;
t = (LSNode*)malloc(sizeof(LSNode));
if(NULL==t) return OVERFLOW;
t->data = e;
t->next = S;
S = t;
return OK;
}
/*出栈操作*/
Status Pop_LS(LStack &S BBSTree &e){
LSNode *t;
if(S==NULL) return ERROR;
t = S;
e = t->data;
S = S->next;
return OK;
}
/*获得栈顶元素*/
Status GetTop_LS(LStack S BBSTree &e){
if(NULL==S) return ERROR;
else{
e = S->data;
return OK;
}
}
/*判断栈是否为空*/
Status StackEmpty_LS(LStack S){
if(NULL==S) return TRUE;
else return FALSE;
}
/*初始化链队列*/
void InitQueue_LQ(LQueue &Q){
Q.front = NULL;
Q.rear= NULL;
}
/*链队列进队操作*/
Status EnQueue_LQ(LQueue &Q BBSTree e){
LQNode *p;
p = (LQNode*)malloc(sizeof(LQNode));
if(NULL==p) return OVERFLOW;
p->elem = e;
p->next = NULL;
if(NULL==Q.front) Q.front = p; //e插入空队列
else Q.rear->next = p; //e插入非空队列
Q.rear = p; //队尾指针指向新的队尾
return OK;
}
/*链队列出栈操作*/
Status DeQueue_LQ(LQueue &Q BBSTree &e){
LQNode *p;
if(NULL==Q.front) return ERROR;
p = Q.front;
e = p->elem;
Q.front = p->next;
if(Q.rear==p) Q.rear = NULL;
free(p);
return OK;
}
/*求平衡二叉树的深度*/
int BBSTreeDepth(BBSTree T){
int depthLeft depthRight;
if(NULL==T) return 0;
else{
depthLeft = BBSTreeDepth(T->lchild);
depthRight = BBSTreeDepth(T->rchild);
return 1+(depthLeft > depthRight ? depthLeft : depthRight);
}
}
/*交换二叉树所有结点的左右子树*/
void ExchangeSubTree(BBSTree &T){
BBSTree temp;
if(NULL!=T){
ExchangeSubTree(T->lchild); //使用递归交换左子树
ExchangeSubTree(T->rchild); //使用递归交换右子树
if((T->lchild!=NULL)||(T->rchild!=NULL)){ //如果T的子树有一个不为空,则交换左右子树
temp = T->lchild;
T->lchild = T->rchild;
T->rchild = temp;
}
}
}
/*左旋调整*/
void L_Rotate(BBSTree &p){
BBSTree rc = p->rchild;
p->rchild = rc->lchild;
rc->lchild = p;
p = rc;
}
/*右旋调整*/
void R_Rotate(BBSTree &p){
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15467 2017-01-03 23:39 数据结构课设\Tree head.cpp
文件 8374 2017-01-03 23:39 数据结构课设\Tree head.o
文件 434132 2017-01-04 00:12 数据结构课设\平衡二叉树--课程设计.doc
文件 8556 2017-01-04 00:05 数据结构课设\平衡二叉树.cpp
文件 147542 2017-01-04 00:05 数据结构课设\平衡二叉树.exe
文件 17445 2017-01-04 00:05 数据结构课设\平衡二叉树.o
文件 235516 2016-12-29 22:40 数据结构课设\数据结构实验指导书(2015春).doc
文件 738304 2017-01-03 12:28 数据结构课设\树--设计性实验.doc
文件 16571 2017-01-03 13:27 数据结构课设\题目12 平衡二叉树操作的演示.docx
目录 0 2017-12-28 23:57 数据结构课设
----------- --------- ---------- ----- ----
1621907 10
相关资源
- 简单职工信息管理的设计与实现
- 数据结构课设三:实现字典查询
- 数据结构课设二:用树形结构模拟W
- 数据结构课程设计-排课系统源代码
- 数据结构课程设计教学计划编制问题
- 人事档案管理系统——数据结构课设
- 简单的文章编辑器数据结构课设
- 数据结构课设拓扑排序源代码教学计
- 山东大学数据结构课设箱子装箱问题
- 数据结构课设——教学计划编制问题
- 数据结构课设模拟银行业务
- 高级数据结构课设1.7z
- 广东工业大学数据结构课设---航空航
- 数据结构课设报告之迷宫.docx
- 二叉树与树、森林的转换数据结构课
- 数据结构课程设计《全国交通咨询模
- 数据结构课设散列表的设计与实现
- 数据结构课设| |迷宫问题
- 数据结构课设——哈夫曼树
- 数据结构课程设计抽签游戏
- 校内旅游咨询课程设计报告
- 数据结构课设Trie树
- 数据结构课设-文学研究助手
- 山东大学软件学院数据结构课设——
- 数据结构课设-航空航天管理系统设计
- 数据结构课设报告之校园导航系统.
- 哈夫曼树编码
- 神秘国度的爱情故事-数据结构课设
- 数据结构课设马踏棋盘
- 数据结构课设最小生成树问题cpp含报
评论
共有 条评论