?? btree.cpp
字號:
#include<iostream.h>
#include<stdlib.h>
typedef char ElemType;
struct BTreeNode{
ElemType data;
BTreeNode *left;
BTreeNode *right;
};
void CreatBTree(BTreeNode *&BT,char *a){
const MaxSize=10;
BTreeNode *s[MaxSize];
int top=-1;
BT=NULL;
BTreeNode *p;
int k;
int i=0;
while(a[i]!='@'){
switch(a[i]){
case'(':
top++;s[top]=p;k=1;
break;
case')':
top--;
break;
case',':
k=2;
break;
default:
p=new BTreeNode;
p->data=a[i];p->left=p->right=NULL;
if(BT==NULL)BT=p;
else{
switch(k)
{
case 1:
s[top]->left=p;
break;
case 2:
s[top]->right=p;
}
}
}
i++;
}
}
int BTreeCount(BTreeNode *BT)
{
if(BT==NULL)return 0;
else
return BTreeCount(BT->left)+BTreeCount(BT->right)+1;
}
int BTreeLeafCount(BTreeNode *BT)
{
if(BT==NULL) return 0;
else if(BT->left==NULL&&BT->right==NULL)return 1;
else return BTreeLeafCount(BT->left)+BTreeLeafCount(BT->right);
}
void main(){
BTreeNode *bt;
char b[50];
cout<<"請輸入一棵二叉樹的廣義表字符串:"<<endl;
cin.getline(b,sizeof(b));
CreatBTree(bt,b);
cout<<"該二叉樹的節(jié)點數(shù)為:"<<BTreeCount(bt)<<endl;
cout<<"該二叉樹的葉子節(jié)點數(shù)為:"<<BTreeLeafCount(bt)<<endl;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -