大佬们,,我要建立一个根节点为1的完全二叉树,,但是写的这个怎么也建立不了,,求大佬指点
#include<iostream>
#include<stdio.h>
#include<stack>
using namespace std;
#define N 100
struct BinTreeNode {
int data;
struct BinTreeNode*leftchild;
struct BinTreeNode*rightchild;//左右子树
};
typedef struct BinTreeNode BintreeNode;
typedef struct BinTreeNode *binteenode;
void create(BinTreeNode**Bintree, int i)
{
if (Bintree == NULL||*Bintree==NULL)
{
return ;
}
while (i<100)
{
*Bintree = (BinTreeNode*)malloc(sizeof(BinTreeNode));
(*Bintree)->data = i;
create(&(*Bintree)->leftchild, 2 * i);
create(&(*Bintree)->rightchild, 2 * i + 1);
}
}
void print(BinTreeNode **Bintree)
{
if (Bintree)
{
cout << &(*Bintree)->data << endl;
print(&(*Bintree)->leftchild);
print(&(*Bintree)->rightchild);
}
}
void proOrder(BinTreeNode*Bintree)
{
if (Bintree)
{
proOrder(Bintree->leftchild);
cout << Bintree->data << ' ';
proOrder(Bintree->rightchild);
}
}
int main()
{
int n;
cin >> n;
BinTreeNode *BIN=NULL;
create(&BIN, n);
proOrder(BIN);
print(&BIN);
return 0;
}