发布网友 发布时间:2022-04-22 07:52
共2个回答
热心网友 时间:2022-06-18 02:39
#include <stdio.h>
#include <string.h>
struct treenode{
int value;
treenode* left;
treenode* right;
};
typedef treenode* BiTree;
void visit(treenode* node)
{
printf("%2d ", node->value);
}
// 结点总数
int node(BiTree T)
{
if( !T ){
return 0;
}
return node(T->left) + node(T->right) + 1;
}
// 前序
void preOrder(BiTree T)
{
if( T ){
visit(T);
preOrder(T->left);
preOrder(T->right);
}
}
// 中序
void inOrder(BiTree T)
{
if( T ){
inOrder(T->left);
visit(T);
inOrder(T->right);
}
}
// 后序
void postOrder(BiTree T)
{
if( T ){
postOrder(T->left);
postOrder(T->right);
visit(T);
}
}
// 叶子节点数
int leafnode(BiTree T)
{
if( T ){
if( !T->left && !T->right )
return 1;
else
leafnode(T->left) + leafnode(T->right);
}else{
return 0;
}
}
int height(BiTree T)
{
if( T ){
int lh = height(T->left);
int rh = height(T->right);
return (lh>rh ? lh:rh) + 1;
}else{
return 0;
}
}
int main()
{
return 0;
}
热心网友 时间:2022-06-18 02:40
#include"3-1.h"
void visit(BiTree bt)
{
printf("%c",bt->data);
}
int node(BiTree T)
{
if(T== NULL)return 0;
else return node(T->lchild)+node(T->rchild)+1;
}
int main()
{
char str[50];
int i;
BiTree t;
printf("请输入要创建的二叉树的序列:");
scanf("%s",str);
t=CreateBiTree(str);
printf("递归前序遍历的结果为:");
PreOrder(t);
printf("\n递归中序遍历的结果为:");
InOrder(t);
printf("\n归后序遍历的结果为:");
PostOrder(t);
i=BitreeLeaf(t);
printf("\n叶子总数为:%d",i);
i=BitreeDepth(t);
printf("\n深度为:%d",i);
i=node(t);
printf("\n结点总数为:%d",i);
return 0;
}
对了,你有头文件了嘛?