MFC实现二叉树 VC6.0环境 测试成功 数据结构课程实验
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1475 2011-04-20 21:14 二叉树二叉树.clw
文件 3567 2011-04-20 15:48 二叉树ReadMe.txt
文件 1286 2011-04-20 15:48 二叉树二叉树.h
文件 2019 2011-04-20 15:48 二叉树二叉树.cpp
文件 1054 2011-04-20 15:48 二叉树StdAfx.h
文件 208 2011-04-20 15:48 二叉树StdAfx.cpp
文件 398 2011-04-20 15:48 二叉树
es二叉树.rc2
文件 1078 2011-04-20 15:48 二叉树
es二叉树.ico
文件 58368 2011-04-20 21:14 二叉树二叉树.ncb
文件 2880 2011-04-20 20:39 二叉树Debug二叉树.res
文件 214016 2011-04-20 21:14 二叉树Debugvc60.idb
文件 5502316 2011-04-20 16:25 二叉树Debug二叉树.pch
文件 372736 2011-04-20 21:14 二叉树Debugvc60.pdb
文件 105812 2011-04-20 16:25 二叉树DebugStdAfx.obj
文件 402432 2011-04-20 21:14 二叉树Debug二叉树.pdb
文件 114780 2011-04-20 21:14 二叉树Debug二叉树.exe
文件 248508 2011-04-20 21:14 二叉树Debug二叉树.ilk
文件 14871 2011-04-20 20:39 二叉树Debug二叉树.obj
文件 17550 2011-04-20 20:58 二叉树Debugfun.obj
文件 37769 2011-04-20 21:14 二叉树Debug二叉树Dlg.obj
文件 520 2011-04-20 15:57 二叉树二叉树.dsw
文件 987 2011-04-20 21:14 二叉树二叉树.plg
文件 1557 2011-04-20 20:36 二叉树二叉树Dlg.h
文件 820 2011-04-20 20:39 二叉树fun.h
文件 1190 2011-04-20 20:39 二叉树Resource.h
文件 36256 2011-04-20 20:39 二叉树二叉树.aps
文件 5941 2011-04-20 20:39 二叉树二叉树.rc
文件 3735 2011-04-20 20:58 二叉树fun.cpp
文件 6401 2011-04-20 21:13 二叉树二叉树Dlg.cpp
文件 4288 2011-04-20 21:13 二叉树二叉树.dsp
............此处省略7个文件信息
#include “stdio.h“
#include “string.h“
#include “stdlib.h“
#include “fun.h“
#include “StdAfx.h“
#define MAX 20
#define NULL 0
#define OK 1
#define ERROR 0
#define STACK_INIT_SIZE 100
#define OVERFLOW 0
#define STACKINCREMENT 10
#define TRUE 1
typedef struct BiTNode{
char data;
struct BiTNode *lchild*rchild;
}BiTNode*BiTree;
typedef struct{
int stacksize;
BiTree *base;
BiTree *top;
}FStack;
void Create( BiTree *T char *data int &flag )
{
CString input;
if( data[flag] == ‘#‘ ) {(*T) = NULL;flag++;}
else
{
(*T) = (BiTree)malloc(sizeof(BiTNode)); //申请节点
(*T)->data = data[flag++]; //生成根节点
Create(&(*T)->lchild data flag); //构造左子树
Create(&(*T)->rchild data flag); //构造右子树
}
} //建立二叉树
int Input(CString m_input BiTree &T )
{
int flag=0;
char *data = (LPSTR)(LPCSTR)m_input;
Create( &T data flag );
return 1;
}
int InitFStack( FStack &S ) //初始化栈
{
int i=0;
S.base= ( BiTree * )malloc( STACK_INIT_SIZE * sizeof( BiTree ) );
if( !S.base ) exit( OVERFLOW );
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
BiTree FGetTop( FStack S ) //取得栈顶或者队列尾的元素
{
if ( S.top == S.base )return NULL;
return *( S.top - 1 );
}
int FPush ( FStack &S BiTree e ) //向栈中压入数据
{
if ( S.top - S.base >= S.stacksize )
{
S.base = ( BiTree * )realloc( S.base ( S.stacksize + STACKINCREMENT )*sizeof( BiTree ) );
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return OK;
}
int FPop( FStack &S BiTree &e ) //取出栈的栈顶数据 或者是取出队列尾的数据
{
if ( S.top == S.base )
return ERROR;
e = *--S.top;
return OK;
}
void Preorder(BiTree TCString &input){
CString temp;
if(T){
temp.Format(“%c“T->data);
input+=temp;
input+=‘ ‘; //访问根节点,输出根节点的数据值
Preorder(T->lchildinput); //先序遍历左子树
Preorder(T->rchildinput); //先序遍历右子树
}
} //递归的方法先序遍历二叉树
void zhongxu(BiTree T CString &input){
CString temp;
if(T){
zhongxu(T->lchildinput); //中序遍历左子树
temp.Format(“%c“T->data); //访问根节点,输出根节点的数据值
input+=temp;
input+=‘ ‘;
zhongxu(T->rchildinput); //中序遍历右子树
}
} //递归的方法中序遍历二叉树
void zhongxu2(BiTree T CString &input){
CString temp;
FStack S;
InitFStack(S);
BiTree p;
p=T;
while(p||(S.base!=S.top))
{
if(p!=NULL){
FPush(Sp);
p=p->lchild;
}
else{
FPop(Sp);
temp.Format(“%c“p->data);
input+=temp;
input+=‘ ‘;
p=p->rchild;
}
}
//非递归的方法中序遍历二叉树
}
void houxu(BiTree T CString &input){
CString temp;
if(T){
houxu(T->lchildinput);
houxu(T->rchildinput);
temp.Format(“%c“T->data); //访问根节点,输出根节点的数据值
input+=temp;
input+=‘ ‘;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1475 2011-04-20 21:14 二叉树二叉树.clw
文件 3567 2011-04-20 15:48 二叉树ReadMe.txt
文件 1286 2011-04-20 15:48 二叉树二叉树.h
文件 2019 2011-04-20 15:48 二叉树二叉树.cpp
文件 1054 2011-04-20 15:48 二叉树StdAfx.h
文件 208 2011-04-20 15:48 二叉树StdAfx.cpp
文件 398 2011-04-20 15:48 二叉树
es二叉树.rc2
文件 1078 2011-04-20 15:48 二叉树
es二叉树.ico
文件 58368 2011-04-20 21:14 二叉树二叉树.ncb
文件 2880 2011-04-20 20:39 二叉树Debug二叉树.res
文件 214016 2011-04-20 21:14 二叉树Debugvc60.idb
文件 5502316 2011-04-20 16:25 二叉树Debug二叉树.pch
文件 372736 2011-04-20 21:14 二叉树Debugvc60.pdb
文件 105812 2011-04-20 16:25 二叉树DebugStdAfx.obj
文件 402432 2011-04-20 21:14 二叉树Debug二叉树.pdb
文件 114780 2011-04-20 21:14 二叉树Debug二叉树.exe
文件 248508 2011-04-20 21:14 二叉树Debug二叉树.ilk
文件 14871 2011-04-20 20:39 二叉树Debug二叉树.obj
文件 17550 2011-04-20 20:58 二叉树Debugfun.obj
文件 37769 2011-04-20 21:14 二叉树Debug二叉树Dlg.obj
文件 520 2011-04-20 15:57 二叉树二叉树.dsw
文件 987 2011-04-20 21:14 二叉树二叉树.plg
文件 1557 2011-04-20 20:36 二叉树二叉树Dlg.h
文件 820 2011-04-20 20:39 二叉树fun.h
文件 1190 2011-04-20 20:39 二叉树Resource.h
文件 36256 2011-04-20 20:39 二叉树二叉树.aps
文件 5941 2011-04-20 20:39 二叉树二叉树.rc
文件 3735 2011-04-20 20:58 二叉树fun.cpp
文件 6401 2011-04-20 21:13 二叉树二叉树Dlg.cpp
文件 4288 2011-04-20 21:13 二叉树二叉树.dsp
............此处省略7个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)