|
|
#2
寒风中的细雨2010-09-21 22:24
#include<stdio.h>
#include<stdlib.h> #define MAX_TREE_SIZE 15 #define NULL 0 typedef struct BitNode { //节点结构 char data; struct BitNode *lchirld,*rchirld;//左孩子,右孩子 }BitNode,*Bitree; char ch; int CreateBtree(Bitree T) { ch = getchar(); getchar(); if(ch=='#') { T=NULL; } //空 else { if(!(T=(Bitree)malloc(sizeof(BitNode)))) exit(0);//建立根节点 T->data=ch; //访问根节 CreateBtree(T->lchirld);//建立左子树 //printf("aaa"); CreateBtree(T->rchirld);//建立右子树 //printf("dddd"); }//else //printf("ccc"); return 0; }//CreateBtree void OrderTralversepre(Bitree T) { // 前序遍历二叉树 if(T==0) return ; else { printf("%c\n",T->data); OrderTralversepre(T->lchirld); //前序遍历左子树 OrderTralversepre(T->rchirld); //前序遍历右子树 }//else }//OrderTralversepre void DistroyBitree(Bitree T) {//销毁二叉树 if(T==0) return ; else { DistroyBitree(T->lchirld);//销毁左子树 DistroyBitree(T->rchirld);//销毁右子树 }//else free(T); //释放节点 }//DistroyBitree void main() { Bitree T=0; printf("建立一个二叉树\n"); CreateBtree(T); printf("\n"); OrderTralversepre(T);//前序遍历二叉树 printf("\n"); DistroyBitree(T);//销毁二叉树 printf("success"); }//main() |
程序代码:#include<stdio.h>
#include<stdlib.h>
#define MAX_TREE_SIZE 15
#define NULL 0
typedef struct BitNode{ //节点结构
char data;
struct BitNode *lchirld,*rchirld;//左孩子,右孩子
}BitNode,*Bitree;
char ch;
int CreateBtree(Bitree T)
{
ch=getchar();
if(ch=='#') {T=NULL;} //空
else{
if(!(T=(Bitree)malloc(sizeof(BitNode)))) exit(0);//建立根节点
T->data=ch; //访问根节
CreateBtree(T->lchirld);//建立左子树
printf("aaa");
CreateBtree(T->rchirld);//建立右子树
printf("dddd");
}//else
printf("ccc");
return 0;
}//CreateBtree
void OrderTralversepre(Bitree T)
{ // 前序遍历二叉树
if(T==0) return ;
else{ printf("%c\n",T->data);
OrderTralversepre(T->lchirld); //前序遍历左子树
OrderTralversepre(T->rchirld); //前序遍历右子树
}//else
}//OrderTralversepre
void DistroyBitree(Bitree T)
{//销毁二叉树
if(T==0) return ;
else {DistroyBitree(T->lchirld);//销毁左子树
DistroyBitree(T->rchirld);//销毁右子树
}//else
free(T); //释放节点
}//DistroyBitree
void main()
{
BitNode T;
printf("建立一个二叉树\n");
CreateBtree(&T);
printf("\n");
OrderTralversepre(&T);//前序遍历二叉树
printf("\n");
DistroyBitree(&T);//销毁二叉树
printf("success");
}//main()
#include<stdlib.h>
#define MAX_TREE_SIZE 15
#define NULL 0
typedef struct BitNode{ //节点结构
char data;
struct BitNode *lchirld,*rchirld;//左孩子,右孩子
}BitNode,*Bitree;
char ch;
int CreateBtree(Bitree T)
{
ch=getchar();
if(ch=='#') {T=NULL;} //空
else{
if(!(T=(Bitree)malloc(sizeof(BitNode)))) exit(0);//建立根节点
T->data=ch; //访问根节
CreateBtree(T->lchirld);//建立左子树
printf("aaa");
CreateBtree(T->rchirld);//建立右子树
printf("dddd");
}//else
printf("ccc");
return 0;
}//CreateBtree
void OrderTralversepre(Bitree T)
{ // 前序遍历二叉树
if(T==0) return ;
else{ printf("%c\n",T->data);
OrderTralversepre(T->lchirld); //前序遍历左子树
OrderTralversepre(T->rchirld); //前序遍历右子树
}//else
}//OrderTralversepre
void DistroyBitree(Bitree T)
{//销毁二叉树
if(T==0) return ;
else {DistroyBitree(T->lchirld);//销毁左子树
DistroyBitree(T->rchirld);//销毁右子树
}//else
free(T); //释放节点
}//DistroyBitree
void main()
{
BitNode T;
printf("建立一个二叉树\n");
CreateBtree(&T);
printf("\n");
OrderTralversepre(&T);//前序遍历二叉树
printf("\n");
DistroyBitree(&T);//销毁二叉树
printf("success");
}//main()
[ 本帖最后由 st_win 于 2010-9-21 16:38 编辑 ]
