111.cpp
来自「该程序用先序输入结点值实现二叉树的创建」· C++ 代码 · 共 75 行
CPP
75 行
#include "stdio.h"
#include "malloc.h"
#include "time.h"
#define OK 1
#define ERROR 0
clock_t start,stop;
double duration;
typedef int status;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
status visit(char e){
printf("%c ",e);
return OK;
};
status CreateBiTree(BiTree &T)
{ //按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树
char ch;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) printf("OVERFLOW");
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}
status InOrderTraverse(BiTree T,status(* visit)(char e))
{//中序遍历二叉树
if(T)
{
if(InOrderTraverse(T->lchild,visit))
if(visit(T->data))
if(InOrderTraverse(T->rchild,visit)) return OK;
return ERROR;
}
else return OK;
}
status main()
{ start=clock();
BiTree T;
printf("按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树\n");
CreateBiTree(T);
printf("\n中序遍历二叉树的结果\n");
InOrderTraverse(T,visit);
stop=clock();
duration=((double)(stop-start))/CLK_TCK;
printf("\n%f",duration);
return OK;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?