二叉树的建立和遍历,请帮忙修改下。

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:28:34
#include <stdlib.h>
#include <iostream.h>
#define Null 0

struct Node
{
int value;
Node* LNode;
Node* RNode;
};

Node* insertNode(Node* root,int key)
{
Node* newNode;
Node* parent;
Node* current;
newNode = new Node;
newNode->value = key;
newNode->LNode = NULL;
newNode->RNode = NULL;
if(root == NULL)
return newNode;
else
{
current = root;
while(current != NULL)
{
parent = current;
if(newNode->value < current->value)
current = current->LNode;
else
current = current->RNode;
}
if(newNode->value < parent->value)
parent->LNode = newNode;
else
parent->RNode = newNode;
return root;
}
}

void trval(Node* root) //递归法中序遍历
{
if(root!=Null)
{
trval(root->LNode)

没问题啊,直接运行就可以得出结果了
-----------------------------------
你的图有点奇怪
另外,“怎么叶子节点没有只有左/右子树?”这句话你是想表达什么意思啊?没有还是只有?

叶子节点是没有左右子树的
------------------------------
叶子节点是没有左右子树的,它的左右子树都是空的