资源简介
MFC实现二叉树 VC6.0环境 测试成功 数据结构课程实验
代码片段和文件信息
#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 二叉树\res\二叉树.rc2
文件 1078 2011-04-20 15:48 二叉树\res\二叉树.ico
文件 58368 2011-04-20 21:14 二叉树\二叉树.ncb
文件 2880 2011-04-20 20:39 二叉树\Debug\二叉树.res
文件 214016 2011-04-20 21:14 二叉树\Debug\vc60.idb
文件 5502316 2011-04-20 16:25 二叉树\Debug\二叉树.pch
文件 372736 2011-04-20 21:14 二叉树\Debug\vc60.pdb
文件 105812 2011-04-20 16:25 二叉树\Debug\StdAfx.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 二叉树\Debug\fun.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个文件信息
相关资源
- MFC_跑酷游戏小Demo
- VS2010基于对话框的MFC 工具栏和状态栏
- MFC bluetooth
- MFC浏览器内嵌IE
- MFC课程设计 学生信息管理系统C++
- C++检测托盘图标和枚举进程2免费
- MFC程序100例.zip
- 字符串\“撞墙反弹\“效果
- 用MFC实现的图像处理源代码总集
- acr122udriver+mfcuk M1卡破解工具
- 学生宿舍后勤管理系统——MFC、C++
- MFC校园导航图 可视化校园地图
- MFC编写的记事本
- C++写的网络共享白板
- 自己做的打地鼠小游戏
- 基于TCP/IP socket的局域网聊天系统
- MFC黄金矿工小游戏
- 迷宫益智游戏,c++mfc编写,亲测有效
- C++课程设计计算器MFC
- 运动会成绩管理系统 mfc+ sql2000
- mfc图书管理系统236562
- vc-基于MFC编程,使用TCP/IP模型编写
- MFC中使用OpenCV显示选定文件夹中所有
- mfc120d.dll 資源下載
- MFC中文和英文帮助文档(各一份)
- MFC图片浏览器
- 图像边缘提取经典算法MFC实现
- VC++ MFC编写的2048小游戏工程及源代码
- MFC实现dem的读取与现实
- Coons曲面与hermite、bezier、B样条曲线标
评论
共有 条评论