| 
 | 
 
 
发表于 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;
 
 - }
 
 
  复制代码 |   
 
 
 
 |