层序结构储存二叉树

来源:互联网 发布:mac怎么装虚拟机 编辑:程序博客网 时间:2024/06/05 23:41
#include<iostream>using namespace std;int a[20],b[20];int main(){int i,n,nu;cout<<"您要输入几个空结点:"<<endl;  cin>>n;cout<<"分别为那几号:"<<endl;for(i=1;i<=n;i++){cin>>nu;a[nu]=NULL;b[i]=nu;}cout<<"请输入各结点的信息"<<endl;for(i=1;i<=7;i++){  bool flag = false;for(int j = 0;j < 7;j++){if(i == b[j]){flag = true;}}   if(flag){}else{cout<<"a["<<i<<"]=";cin>>a[i];}}cout<<"层序输出节点数据如下:"<<endl;for(i=1;i<=7;i++)//层序输出{  if(a[i]==NULL){}else{cout<<"a["<<i<<"]="<<a[i]<<" "<<endl;}}cout<<"////////////////"<<endl;for(i=1;i<=7;i++)//找孩子和双亲结点{if(a[i]==NULL){}else{     cout<<"a["<<i<<"]="<<a[i]<<" "<<endl;         if(a[2*i]==NULL) cout<<"左孩子结点为空"<<endl; else   cout<<"左孩子结点为:"<<a[2*i]<<endl; if(a[2*i+1]==NULL) cout<<"右孩子结点为空"<<endl;  else   cout<<"右孩子结点为:"<<a[2*i+1]<<endl;  if(a[int (i/2)]==NULL) cout<<"双亲结点为空"<<endl;  else cout<<"双亲结点是为:"<<a[int (i/2)]<<endl;  if(a[2*i]==NULL&&a[2*i+1]==NULL)  cout<<"该结点是叶子结点"<<endl;}      }return  0;}





实验结果如图



原创粉丝点击