一个2叉树的小疑点 会的指教一下 小弟感激不尽
一个2叉树的小问题 会的指教一下 小弟感激不尽
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct node
{
char data;
struct node *rchild,*lchild;
}node;
node *creattree(node *root)
{
char ch;
cin> > ch;
if(ch == ' ')
{
root = NULL;
return root;
}
else
{
root = (node *)malloc(sizeof(node));
root-> data = ch;
creattree(root-> lchild);
creattree(root-> rchild);
return root;
}
}
void outtree(node *root)
{
if(root!=NULL)
{
cout < <root -> lchild;
outtree(root-> lchild);
outtree(root-> rchild);
}
}
int main()
{
node *head,*root;
//head = (node*)malloc(sizeof(node));
root = (node*)malloc(sizeof(node));
//head-> lchild = root,head-> rchild = NULL;
root-> lchild =root-> rchild = 0;
cout < < "please enter data of the tree: " < <endl;
root = creattree(root);
outtree(root);
return 1;
}
问题描述:
不能打印出 建立的2叉树~!~!~~~~~
------解决方案--------------------
死循环 不停的在添加坐孩子
LZ可以跟踪进去仔细看看
------解决方案--------------------
node *creattree(node **root);
root = creattree(&root);
------解决方案--------------------
void outtree(node *root)
{
if(root!=NULL)
{
cout < <root -> lchild;//这句应该是root-> lchild-> data吧?
cout < <root-> rchild-> data;//这个你也没写.
outtree(root-> lchild);
outtree(root-> rchild);
}
}
------解决方案--------------------
node *creattree(node *root)
{
char ch;
cin> > ch;
if(ch == ' ')
{
root = NULL;
return root;
}
else
{
root = (node *)malloc(sizeof(node));
root-> data = ch;
creattree(root-> lchild);
creattree(root-> rchild);
return root;
}
}你这个递规每次都要一个 ' '才能返回,明显有问题么
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct node
{
char data;
struct node *rchild,*lchild;
}node;
node *creattree(node *root)
{
char ch;
cin> > ch;
if(ch == ' ')
{
root = NULL;
return root;
}
else
{
root = (node *)malloc(sizeof(node));
root-> data = ch;
creattree(root-> lchild);
creattree(root-> rchild);
return root;
}
}
void outtree(node *root)
{
if(root!=NULL)
{
cout < <root -> lchild;
outtree(root-> lchild);
outtree(root-> rchild);
}
}
int main()
{
node *head,*root;
//head = (node*)malloc(sizeof(node));
root = (node*)malloc(sizeof(node));
//head-> lchild = root,head-> rchild = NULL;
root-> lchild =root-> rchild = 0;
cout < < "please enter data of the tree: " < <endl;
root = creattree(root);
outtree(root);
return 1;
}
问题描述:
不能打印出 建立的2叉树~!~!~~~~~
------解决方案--------------------
死循环 不停的在添加坐孩子
LZ可以跟踪进去仔细看看
------解决方案--------------------
node *creattree(node **root);
root = creattree(&root);
------解决方案--------------------
void outtree(node *root)
{
if(root!=NULL)
{
cout < <root -> lchild;//这句应该是root-> lchild-> data吧?
cout < <root-> rchild-> data;//这个你也没写.
outtree(root-> lchild);
outtree(root-> rchild);
}
}
------解决方案--------------------
node *creattree(node *root)
{
char ch;
cin> > ch;
if(ch == ' ')
{
root = NULL;
return root;
}
else
{
root = (node *)malloc(sizeof(node));
root-> data = ch;
creattree(root-> lchild);
creattree(root-> rchild);
return root;
}
}你这个递规每次都要一个 ' '才能返回,明显有问题么