解题报告-PAT-Complete Binary Search Tree
来源:互联网 发布:北上战舰世界数据 编辑:程序博客网 时间:2024/05/22 11:57
原题链接:https://pta.patest.cn/pta/test/1342/exam/4/question/20493
浙大oj:1064题
输入题意:输入一组数,根据这组数构造一个二叉排序树而且是完全二叉树。输出这个树的层次遍历序列。
解题思路:
先把输入的序列排序得到num[]数组,然后构造一个普通的n个节点的完全二叉树,节点值可以随意输入,之后利用中序遍历将num[]数组中的值一次填入,利用了二叉排序树的中序遍历序列是递增序列的性质。
源代码:
# include <stdio.h># include <algorithm># define MAX 1010using namespace std; typedef struct Node{struct Node *l;struct Node *r;int data;}*BiTree,Node; int num[MAX]; BiTree q[MAX]; //层次遍历队列 int co = 0; //中序遍历填数标记 //递归中序遍历 void InOrder(BiTree T){if(T!=NULL){InOrder(T->l);T->data = num[co++];InOrder(T->r);}}/*解题思路:先层次遍历构造一个二叉链表存储的完全二叉树在中序遍历填入相关数据最后层次遍历输出 */ int main(){//预处理 int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&num[i]);}sort(num,num+n);//层次遍历建完全二叉树 BiTree p,T;//初始化根节点 T = (BiTree) malloc(sizeof(Node));T->data=1;T->l = T->r = NULL;int count = 1,front =0,rear = 1;q[0] = T; //初始化队列 while(count <n && front < rear){p = q[front++];if(p->l == NULL){BiTree temp;temp = (BiTree)malloc(sizeof(Node));temp -> l = temp -> r = NULL; temp -> data = count+1; //数据填入什么都可以,之后还要重新填入 p->l = temp; q[rear++] = temp;count++;if(count >= n) break;}if(p->r == NULL){BiTree temp;temp = (BiTree)malloc(sizeof(Node));temp->l = temp->r = NULL; temp ->data = count+1;p->r = temp;q[rear++] = temp;count++;if(count >= n) break;}}//中序遍历填入数据InOrder(T);//层次遍历输出结果 front = 0; rear = 1;q[0] = T;int flag = 0; //输出格式控制 while(front < rear){p = q[front++];if(p->l!=NULL)q[rear++] = p->l;if(p->r!=NULL)q[rear++] = p->r;if(flag)printf(" ");flag++;printf("%d",p->data);}printf("\n");return 0;}
0 0
- 解题报告-PAT-Complete Binary Search Tree
- 1064. Complete Binary Search Tree (30)解题报告
- 1064. Complete Binary Search Tree (30)-PAT
- 【PAT】1064. Complete Binary Search Tree (30)
- 浙大PAT 1064. Complete Binary Search Tree
- PAT 1064. Complete Binary Search Tree
- PAT 1064. Complete Binary Search Tree
- PAT 1064 Complete Binary Search Tree
- PAT 1064. Complete Binary Search Tree (30)
- PAT-Complete Binary Search Tree (30)
- pat 1064. Complete Binary Search Tree (30)
- PAT 1022Complete Binary Search Tree (30)
- PAT-A 1064. Complete Binary Search Tree
- PAT|1064. Complete Binary Search Tree
- 【PAT】1064. Complete Binary Search Tree
- PAT A1064. Complete Binary Search Tree (30)
- PAT 1064 Complete Binary Search Tree
- pat-a1064. Complete Binary Search Tree (30)
- 清华EMBA课程系列思考之十三(2) -- 管理心理学
- poj3268(最短路,dijkstra)
- 2016-10-18课后练习
- 泛型
- Hadoop-从mapper中输出不同值的类型的数据
- 解题报告-PAT-Complete Binary Search Tree
- Linux Kernel数据结构:链表
- 盒子模型5层次
- 生活小常 每日一更
- 338_debug查看局部变量
- GeoServer-WMTS,TMS
- iOS - 自定义转场动画
- 第二本第六章第4题京东商品分类列表页面
- 339_No view found for id for fragment错误