1.树的样子
代码
有部分是看别人的
using namespace std;
char s[100];
int pos;
struct Tnode{
char val;
Tnode* left;
Tnode* right;
Tnode(char c): val(c), left(NULL), right(NULL){}
};
//递归建树
Tnode* createTree(){
char c = s[pos++];
if(c == '#')//为空,返回上个节点
return NULL;
Tnode* root = new Tnode(c);//新建节点
root->left = createTree();//建立左子树
root->right = createTree();//建立右子树
return root;
}
void inOrder(Tnode* T){
if(!T) return ;
inOrder(T->left);
cout << T->val << " ";
inOrder(T->right);
}
int main(){
while(scanf("%s", s) != EOF){
pos = 0;
Tnode* root = createTree();
inOrder(root);
cout << endl;
}
return 0;
}
常见错误
我遇到了几次段错误,总结
- 字符数组开的不够大
- scanf("%s", s),没写!=EOF;或者用cin>>s解决