C++程序问题 在线等啊

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:16:42
目的是从数组中读取数据创建二叉树(从上到下从左到右,即创建完全二叉树)然后双序遍历二叉树
可是输出结果不对 我也找不到是哪的问题 递归的算法
都有注释
#include<iostream>
using namespace std;
class BinTree;
class BinTreeNode
{
friend class BinTree;
private:
int data;//结点数据部分
BinTreeNode *Lchild,*Rchild;//左右子指针
};
class BinTree
{
private:
int *T;//数组名指针 用来自定义数组大小
int n;//结点个数
BinTreeNode *p;

public:
BinTreeNode *R;//根结点指针
void InputData();//创建数组并向数组中存入数据并创建根结点
BinTreeNode* NewNode(int x);//创建新结点并初始化左右子指针
void Creat(BinTreeNode* r,int i);//用数组中的数据创建二叉链表
void DoubleOrder(BinTreeNode* r);//双序遍历二叉树

};
////////////////////////////////////////////////////////////////////////////////
void BinTree::InputData()
{
cout<<"请输入数据个数"<<endl;
cin>>n;

void BinTree::InputData()
{
cout<<"请输入数据个数"<<endl;
cin>>n;
R=NULL;
if(n>0)//结点数不为0时创建数组
{
int *V = new int[n];
cout<<"请依次输入这"<<n<<"个数据(整型)"<<endl;
for(int i=0;i<n;i++)//for循环将数据存入数组
cin>>V[i];
T=V;//T指针指向数组
R=NewNode(T[0]); //创建根结点
}
}