完全二叉树的建立(2)

    技术2022-05-19  25

    加油!!!

    #include<stdio.h>#include<stdlib.h>#include<queue>using namespace std;typedef struct No{ char date; No* left; No* right;} Node;///完全二叉树的建立///Node *creatbt(){ Node *root=NULL,*s; queue<Node*>Q; char a; int count=0; while(scanf("%c",&a),a!='#'){  s=NULL;  if(a!='@'){   s=(Node*)malloc(sizeof(Node));   s->date=a;   s->left=NULL;   s->right=NULL;  }  Q.push(s);  count++;  if(count==1)   root=s;  else{   if(s&&!Q.empty())    if(count%2==0)     Q.front()->left=s;    else Q.front()->right=s;    if(count%2==1)Q.pop();  } } return root;}

    void printt(Node *t){ if(t){  printt(t->left);  printf("%c",t->date);  printt(t->right); }}main(){ Node* root; printf("请按照前序输入字符:/n"); root=creatbt(); printf("按照中序遍历的结果是:/n"); printt(root); return 0;}


    最新回复(0)