标题:请问我该怎么结束输入
只看楼主
九亿少女的梦
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-4-9
结帖率:66.67%
 问题点数:0 回复次数:2 
请问我该怎么结束输入
#include<malloc.h>
 #include<stdio.h>
 #include<stdlib.h>
 #include<math.h>
#define false 1;
typedef char DataType;
typedef struct node{
    DataType data;
    struct node *lchild,*rchild;
}BiTNode;
typedef BiTNode *BiTree;

void CreateBiTree(BiTree &T){
    char ch;
    ch=getchar();
    if(ch=='\0')
        T=NULL;
    else{
        T=(BiTNode*)malloc(sizeof(BiTNode));
        T->data=ch;
        CreateBiTree(T->lchild);
        CreateBiTree(T->rchild);
    }
}

void visit(char e){
    printf("%c ",e); //

int PreOrderTraverse(BiTree T,void(*Visit)(char e))
 { // 初始条件:二叉树T存在,Visit是对结点操作的应用函数。修改算法6.1
   // 操作结果:先序递归遍历T,对每个结点调用函数Visit一次且仅一次
     if(T!=NULL) // T不空
     {
         Visit(T->data); // 先访问根结点
         PreOrderTraverse(T->lchild,Visit); // 再先序遍历左子树
         PreOrderTraverse(T->rchild,Visit); // 最后先序遍历右子树

     } return 0;
 }
void InOrderTraverse(BiTree T,void(*Visit)(char e))
 { // 初始条件:二叉树T存在,Visit是对结点操作的应用函数
   // 操作结果:中序递归遍历T,对每个结点调用函数Visit一次且仅一次

     if(T!=NULL)
     {
         InOrderTraverse(T->lchild,Visit); // 先中序遍历左子树
         Visit(T->data); // 再访问根结点  
         InOrderTraverse(T->rchild,Visit); // 最后中序遍历右子树
     };
 }
  void PostOrderTraverse(BiTree T,void(*Visit)(char e))
 { // 初始条件:二叉树T存在,Visit是对结点操作的应用函数
   // 操作结果:后序递归遍历T,对每个结点调用函数Visit一次且仅一次
   
      if(T!=NULL) // T不空
      {
          PostOrderTraverse(T->lchild,Visit); // 先后序遍历左子树   
          PostOrderTraverse(T->rchild,Visit); // 再后序遍历右子树
          Visit(T->data); // 最后访问根结点
      }
 }

  void main()
 {
   
      BiTree T;
      printf("按先序次序输入二叉树中结点的值,输入空格表示节点为空\n");
      CreateBiTree(T); // 建立二叉树T
      printf("先序递归遍历二叉树:\n");
      PreOrderTraverse(T,visit); // 先序递归遍历二叉树T
      printf("\n中序递归遍历二叉树:\n");   
      InOrderTraverse(T,visit); // 中序递归遍历二叉树T
      printf("\n后序递归遍历二叉树:\n");
      PostOrderTraverse(T,visit); // 后序递归遍历二叉树T
 }
搜索更多相关主题的帖子: include false 
2017-04-09 18:03
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
得分:0 

程序代码:
void CreateBiTree(BiTree &T){
    char ch;
    ch=getchar();
    if(ch=='\0')/*输入空格表示节点为空,所以这里不应该是ch==‘\0’,而是ch==' '   */
        T=NULL;
    else{




φ(゜▽゜*)♪
2017-04-09 22:48
九亿少女的梦
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-4-9
得分:0 
回复 2楼 书生牛犊
xiexie!

[此贴子已经被作者于2017-4-13 20:57编辑过]

2017-04-13 19:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475941-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022886 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved