PAT 1115. Counting Nodes in a BST (30) 搜索树建立 + 各层节点数量判断
来源:互联网 发布:网络会员管理系统免费 编辑:程序博客网 时间:2024/06/06 04:46
#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<string.h>#include<cmath>using namespace std;//35min//耗时于读题,改bug/*************************题意:给出一串序列,构成二叉平衡树(Binary Search Tree)求最后两层的节点数量之和*************************//************************求解要点:1.树的构建简单,用指针做。2.求解最后两层可以不需要遍历。每次当节点插入时,判断当前所处层数,并更新ans数组即可每当有新层数即level>=size()时,push一个1进去否则就让ans[level]++。最终只需要输出ans最后2个元素的值即可。************************//***********************笔记:*********************/#define M 1100#define INF 2000struct Node{int data;Node *Left,*Right;int level;};vector<int> ans;void BSTinsert(Node *node,int num,int level){if(node->data ==INF){node->data=num;node->Left=(Node *)malloc(sizeof(Node));node->Left->data=INF;node->Right=(Node *)malloc(sizeof(Node));node->Right->data=INF;//当前层数为ans下标,若没有就push一个。if(ans.size()<=level){ans.push_back(1);}elseans[level]++;return ;}if(num<=node->data){BSTinsert(node->Left,num,level+1);}else BSTinsert(node->Right,num,level+1);}int main(){int n,i,num;scanf("%d",&n);Node *root=(Node *)malloc(sizeof(Node));root->data=INF;for(i=0;i<n;i++){scanf("%d",&num);BSTinsert(root,num,0);}int a,b;a=ans[ans.size()-1];b=ans[ans.size()-2];printf("%d + %d = %d\n",a,b,a+b);}
阅读全文
0 0
- PAT 1115. Counting Nodes in a BST (30) 搜索树建立 + 各层节点数量判断
- 1115. Counting Nodes in a BST (30)(建立二叉搜索树)
- *1115. Counting Nodes in a BST (30) <二叉搜索树>
- pat甲1115. Counting Nodes in a BST(BST二叉搜索树)
- PAT--1115. Counting Nodes in a BST
- 【PAT】1115. Counting Nodes in a BST
- PAT A 1115. Counting Nodes in a BST (30)
- solution Of Pat 1115. Counting Nodes in a BST (30)
- PAT 1115. Counting Nodes in a BST (30)
- pat 1115. Counting Nodes in a BST (30)
- 1115. Counting Nodes in a BST (30) PAT 甲级
- 【PAT】【Advanced Level】1115. Counting Nodes in a BST (30)
- PAT 1115. Counting Nodes in a BST (30) 建树
- PAT 甲级 1115. Counting Nodes in a BST (30)
- 1115. Counting Nodes in a BST (30)
- 1115. Counting Nodes in a BST (30)
- 1115. Counting Nodes in a BST (30)
- 1115. Counting Nodes in a BST (30)
- 最大似然和最大后验估计
- postman安装使用教程
- vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法
- Linux内核中提供的一些字符串转换函数
- awk查看与统计nginx访问日志
- PAT 1115. Counting Nodes in a BST (30) 搜索树建立 + 各层节点数量判断
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛【solved:9 / 10】
- Java如何使用redis
- spring事务管理
- MSDNet(Multi-Scale Dense Convolutional Networks)算法笔记
- 二叉树题目
- Python基础知识实例讲解
- Oxford Deep NLP学习笔记1:Word Level Semantics
- Qt 侧边栏