为啥我的程序不能运行
#include<stdlib.h>#include<stdio.h>typedefcharBTElemType;//二叉树的数据元素类型//二叉树结点类型typedef...
#include <stdlib.h>
#include <stdio.h>
typedef char BTElemType; //二叉树的数据元素类型
//二叉树结点类型
typedef struct BiTNode{
BTElemType data;
struct BiTNode *lchild, *rchild; /*左右孩子指针*/
}BiTNode, *BiTree;
//以下为二叉树链式存储结构的操作函数
//创建二叉树(先序遍历方式)
char ch;
#define OVERFLOW 0
void createbt (BiTree &bt) {
//以下代码由学生编写
//按先序输入二叉树结点值,递归创建二叉链表。当输入字符'#'时代表空。
//以上代码由学生编写
scanf(&ch);
if(ch=='#')bt=NULL;
else{
if(!(bt=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);
bt->data=ch;
createbt(bt->lchild);
createbt(bt->rchild);
}
}
//结点访问
void visit(BiTree bt) {
printf("%5c", bt->data);
}
//先序遍历
void PreOrder(BiTree bt) {
if(bt!=NULL) {
visit(bt);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
//中序遍历
void InOrder(BiTree bt) {
//以下代码由学生编写
//按中序递归访问二叉树结点值并显示
//以上代码由学生编写
if(bt!=NULL){
visit(bt->lchild);
InOrder(bt);
InOrder(bt->rchild);
}
}
//后序遍历
void PostOrder(BiTree bt) {
//以下代码由学生编写
//按后序递归访问二叉树结点值并显示
//以上代码由学生编写
if(bt!=NULL){
visit(bt->lchild);
PostOrder(bt->rchild);
PostOrder(bt);
}
}
void main(void) {
BiTree t;
printf("请先序输入二叉树各结点值(用'#'表示当前结点值为空):\n");
createbt(t);
printf("\n二叉树先序遍历结果为:\n");
PreOrder(t);
printf("\n二叉树中序遍历结果为:\n");;
InOrder(t);
printf("\n二叉树后序遍历结果为:\n");
PostOrder(t);
printf("\n");
} 展开
#include <stdio.h>
typedef char BTElemType; //二叉树的数据元素类型
//二叉树结点类型
typedef struct BiTNode{
BTElemType data;
struct BiTNode *lchild, *rchild; /*左右孩子指针*/
}BiTNode, *BiTree;
//以下为二叉树链式存储结构的操作函数
//创建二叉树(先序遍历方式)
char ch;
#define OVERFLOW 0
void createbt (BiTree &bt) {
//以下代码由学生编写
//按先序输入二叉树结点值,递归创建二叉链表。当输入字符'#'时代表空。
//以上代码由学生编写
scanf(&ch);
if(ch=='#')bt=NULL;
else{
if(!(bt=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);
bt->data=ch;
createbt(bt->lchild);
createbt(bt->rchild);
}
}
//结点访问
void visit(BiTree bt) {
printf("%5c", bt->data);
}
//先序遍历
void PreOrder(BiTree bt) {
if(bt!=NULL) {
visit(bt);
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
//中序遍历
void InOrder(BiTree bt) {
//以下代码由学生编写
//按中序递归访问二叉树结点值并显示
//以上代码由学生编写
if(bt!=NULL){
visit(bt->lchild);
InOrder(bt);
InOrder(bt->rchild);
}
}
//后序遍历
void PostOrder(BiTree bt) {
//以下代码由学生编写
//按后序递归访问二叉树结点值并显示
//以上代码由学生编写
if(bt!=NULL){
visit(bt->lchild);
PostOrder(bt->rchild);
PostOrder(bt);
}
}
void main(void) {
BiTree t;
printf("请先序输入二叉树各结点值(用'#'表示当前结点值为空):\n");
createbt(t);
printf("\n二叉树先序遍历结果为:\n");
PreOrder(t);
printf("\n二叉树中序遍历结果为:\n");;
InOrder(t);
printf("\n二叉树后序遍历结果为:\n");
PostOrder(t);
printf("\n");
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询