• 大小: 1.81MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-04
  • 语言: C/C++
  • 标签: 二叉树  VC6.0  MFC  

资源简介

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个文件信息

评论

共有 条评论