?? tree.cpp
字號:
#include <stdlib.h>
#include <stdio.h>
#define OK 1
#define OVERFLOW -2
typedef struct BinNode /*定義二叉樹結構*/
{
char data;
struct BinNode *lchild,*rchild;
} BinNode, *BinTree;
int CreateBinTree(BinTree *Tree)
{
char ch;
scanf("%c",&ch);
if(ch == '.')
(*Tree) = NULL;
else
{
if(!((*Tree) = (BinTree)malloc(sizeof(BinNode))))
exit(OVERFLOW);
(*Tree)->data = ch;
CreateBinTree(&((*Tree)->lchild));
CreateBinTree(&((*Tree)->rchild));
}
return (OK);
}/*CreateBiTree*/
int depth(BinTree T)
{
int n,n1,n2;
if(!T)
n=0;
else
{
n1=depth(T->lchild);
n2=depth(T->rchild);
n=1+(n1>n2?n1:n2);
}
return n;
}
int leaf(BinTree T)
{
int n1,n2;
if(!T) return 0;
else if((!T->lchild) && (!T->rchild))return 1;
else
{
n1=leaf(T->lchild);
n2=leaf(T->rchild);
return(n1+n2);
}
}
void main()
{
BinTree T=NULL;
printf("請輸入您要建立的二叉樹的先序擴展序列(用.表示空)\n");
CreateBinTree(&T);
printf("構造二叉樹成功!\n");
printf("您所輸的二叉樹的高度為:");
printf("%d\n",depth(T));
printf("您所輸的二叉樹所含葉子節點數為:");
printf("%d\n",leaf(T));
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -