|

楼主 |
发表于 2015-5-13 18:49:54
|
显示全部楼层
完整代码:
- typedef char ElemType;
- typedef struct BiTNode
- {
- char data;
- struct BiTNode *lchild, *rchild;
- } BiTNode, *BiTree;
- // 创建一棵二叉树,约定用户遵照前序遍历的方式输入数据
- void CreateBiTree(BiTree *T)
- {
- char c;
- scanf("%c", &c);
- if( ' ' == c )
- {
- *T = NULL;
- }
- else
- {
- *T = (BiTNode *)malloc(sizeof(BiTNode));
- (*T)->data = c;
- CreateBiTree(&(*T)->lchild);
- CreateBiTree(&(*T)->rchild);
- }
- }
- // 访问二叉树结点的具体操作,你想干嘛?!
- void visit(char c, int level)
- {
- printf("%c 位于第 %d 层\n", c, level);
- }
- // 前序遍历二叉树
- void PreOrderTraverse(BiTree T, int level)
- {
- if( T )
- {
- visit(T->data, level);
- PreOrderTraverse(T->lchild, level+1);
- PreOrderTraverse(T->rchild, level+1);
- }
- }
- int main()
- {
- int level = 1;
- BiTree T = NULL;
- CreateBiTree(&T);
- printf("%c",T->data);
- PreOrderTraverse(T, level);
- return 0;
- }
复制代码
没出结果就是说,没有输出二叉树各节点,程序在执行PreOrderTraverse()函数时,执行到if语句,没满足条件就直接结束了 |
|