|  | 
 
 发表于 2014-5-8 11:13:31
|
显示全部楼层 
| 运行了一下前面的程序,但运行不出结果,于是调试了一下,修改程序如下: 复制代码//#include <stdio.h>
//#include <stdlib.h>
#include <iostream>
using namespace std ;
typedef struct btnode
{
        char val ;
        struct btnode *lchild ,*rchild ;
}BTNODE;
BTNODE* create_bt (BTNODE* node )
{
        //int ch;
        char ch;
        //scanf("%c" ,&ch );
        cin>>ch;
        //BTNODE *p ,*head=NULL;//operate
        //p=node;
        //p=(BTNODE*)malloc(sizeof(BTNODE));
        if('#'==ch)
        {
                return NULL;
        }
        else
        {
                node=(BTNODE*)malloc(sizeof(BTNODE));
                node->val=ch;
                node->lchild=create_bt(node->lchild);
            node->rchild=create_bt(node->rchild);
                        //if(p->val=ch ) head=p;
                        //create_bt(p->lchild);
                        //create_bt(p->rchild);
        }
        return (node) ;
}
void visit (char val ,int level)
{
        //printf("%c是%d层\n" ,val ,level);
        cout<<val<<"是"<<level<<"层"<<endl;
}
void preorder (BTNODE* node ,int level)
{
        BTNODE* p ;
        p=node;
        if(p)
        {
                visit(p->val , level );
                preorder(p->lchild ,level+1);
                preorder(p->rchild ,level+1);
        }
}
int main ()
{
        int level=0 ;
        BTNODE *head;
        head=create_bt(NULL);
        preorder(head ,level);
        return 0;
}
 | 
 |