求二叉樹的高度並輸出,並按樹狀列印該二叉樹

2021-10-10 11:03:57 字數 1609 閱讀 1860

3, 輸出所給二叉樹的全部結點,求二叉樹的高度並輸出,並按樹狀列印該二叉樹*/

#include 

#include 

typedef char datatype; 

typedef struct node

datatype data;

struct node *lchild;

struct node *rchild;

}bitnode, *bitree;

void createbitree(bitree *bt)//建立二叉樹

char ch;

ch = getchar();

if(ch=='#') *bt=null;

else 

*bt=(bitree)malloc(sizeof(bitnode)); //生成乙個新結點

(*bt)->data=ch;

createbitree(&((*bt)->lchild)); //生成左子樹

createbitree(&((*bt)->rchild)); //生成右子樹

/*輸出二叉樹的結點*/ 

void inputorder(bitree root)

if(root!=null)

printf("%c", root->data);

inputorder(root->lchild);

inputorder(root->rchild);

//求二叉樹的高度方法一

int getheight( bintree root)

return 0;

}/* 後序遍歷求二叉樹的高度遞迴演算法  、方法二*/

int height(bitree root)

int hl, hr, max;

if(root!=null)

hl = height(root->lchild);

hr = height(root->rchild);

max = hl > hr ? hl : hr;

return (max + 1);

else return 0;

/* 按樹狀列印的二叉樹 */

void printtree(bitree root,int n)

if(root==null)

return;

printtree(root->rchild,n+1);

for(int i = 0; i < n;i++)

printf(" ");

printf("%c\n", root->data);

printtree(root->lchild,n+1);

int main()

bitree t;

int h,layer;

printf("按擴充套件先序遍歷序列建立二叉樹,請輸入序列:\n");

createbitree(&t);

printf("先序輸出二叉樹的結點為:");

inputorder(t);

//  h=height(t);

printf("\n二叉樹的高度為:%d",height(t));

printf("\n");

printtree(t,0);

getch();

求二叉樹高度

函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測試程式樣例 include...

求二叉樹高度

本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...

求二叉樹高度

題目來自於pta 函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測試程式樣...