#include<iostream> using namespace std; #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define MAXSIZE 100 typedef char status; typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;//定义 void CreateTree(BiTree& T) { char x; cin >> x; if (x =='*') { T = NULL; return; } else { T = new BiTNode; T->data = x; CreateTree(T->lchild); CreateTree(T->rchild); } }//创建二叉树 int NodeCount(BiTree T) { if(T==NULL) return 0;//如果是空树,则结点个数为0,递归结束 else if(T->lchild!=NULL&&T->rchild!=NULL) return NodeCount(T->lchild)+ NodeCount(T->rchild)+1; } int main() { int n; BiTree T; CreateTree(T); n=NodeCount(T); cout<<n<<"\n"; return 0; }怎么修改使得可以同时测试多组数据
时间: 2024-03-23 15:43:33 浏览: 90
使用include <iostream>时一定要加using namespace std
可以在程序中使用循环来实现多次测试数据。具体来说,可以在程序外层套一个循环,每次循环时重新输入二叉树,计算结点个数并输出结果。如下所示:
```cpp
int main() {
int n;
BiTree T;
while (true) {
CreateTree(T);
n = NodeCount(T);
cout << n << "\n";
// 清空输入缓冲区,准备输入下一组数据
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
return 0;
}
```
这样就可以反复测试多组数据了。每次测试完成后,程序会等待用户输入下一组数据。注意,在每次输入前需要清空输入缓冲区,以避免输入错误。
阅读全文