1.树的样子

alt

代码

有部分是看别人的

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;
}

常见错误

我遇到了几次段错误,总结

  1. 字符数组开的不够大
  2. scanf("%s", s),没写!=EOF;或者用cin>>s解决