回 帖 发 新 帖 刷新版面

主题:求助:为什么我写的二叉树只有输入没有输出

#include <iostream>

using namespace std;

struct Node
{
       char data;
       Node* lchild;
       Node* rchild;
};

void createTree(Node** T);
void preorder(Node* T);

int main()
{
    Node *tree ;
        
    cout <<"intput:" << endl;
    createTree(&tree);
    cout << endl;
    
    cout << "print:" << endl;
    preorder(tree);
    cout << endl;
    
    system("pause");
    return 0;
}

void createTree(Node** T)
{
     char ch;
     
     if(ch=getchar() == ' ')
          (*T) = 0;
     else
     {
          *T = new Node; 
         (*T)->data = ch;
         createTree(&(*T)->lchild);
         createTree(&(*T)->rchild);
     }
}

void preorder(Node* T)
{
     if(T)
     {
         cout << T->data;
         preorder(T->lchild);
         preorder(T->rchild);
     }
}

回复列表 (共2个回复)

沙发

void createTree(Node** T)//应该要返回跟接点的指针吧
{
     char ch;
     
     if(ch=getchar() == ' ')
          (*T) = 0;
     else
     {
          *T = new Node; 
         (*T)->data = ch;
         createTree(&(*T)->lchild);
         createTree(&(*T)->rchild);
     }

板凳

谢谢,已经找到错误的地方,
if(ch=getchar() == ' ')
改成if( (ch=getchar()) == ' ')
就行了

我来回复

您尚未登录,请登录后再回复。点此登录或注册