资源简介
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的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- 移木块游戏,可以自编自玩,vc6.0编写
- MFC数字钟(基于VC6.0)
- 安科瑞智能电能表MODBUS通讯程序 VC6
- VC++MFC小游戏实例教程(实例)+MFC类库
- VC6LineNumberAddin.dll
- 用VC6.0实现多边形扫描线填充算法
- VC助手 VC6.0助手
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
评论
共有 条评论