啊好像是废话(当然是链表)
解决了一个微小的问题但是懒得赘述了直接当模板上代码吧
#include<bits/stdc++.h>
using namespace std;
const int N=10000;
struct Binary_Tree{
int val;
Binary_Tree *left,*right;
};
void input(int,Binary_Tree**);
int main(){
int n,tmp;
cin>>n;
Binary_Tree *root=NULL;
for(int i=0;i<n;i++){
cin>>tmp;
input(tmp,&root);
}
Binary_Tree *que[N];
int head,tail;
head=0;tail=0;
que[head]=root;
while(head<=tail){
cout<<que[head]->val<<' ';
if(que[head]->left!=NULL) que[++tail]=que[head]->left;
if(que[head]->right!=NULL) que[++tail]=que[head]->right;
head++;
/* if(que[head]==NULL) cout<<"* ";
else{
cout<<que[head]->val<<' ';
que[++tail]=que[head]->left;
que[++tail]=que[head]->right;
}
head++;
*/ }
return 0;
}
void input(int x,Binary_Tree **newroot){
if(*newroot==NULL){
(*newroot)=new Binary_Tree;
(*newroot)->val=x;
(*newroot)->left=(*newroot)->right=NULL;
}
else{
if(x<(*newroot)->val) input(x,&((*newroot)->left));
else input(x,&((*newroot)->right));
}
}
//perfect;
像这种指向指针的指针一定要注意用括号区别清楚不然编译器(dev)会卖萌的