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