当前位置:网站首页>Counting Nodes in a Binary Search Tree
Counting Nodes in a Binary Search Tree
2022-07-27 04:43:00 【小L~~~】
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:
The left subtree of a node contains only nodes with keys less than or equal to the node’s key.
The right subtree of a node contains only nodes with keys greater than the node’s key.
Both the left and right subtrees must also be binary search trees.
Insert a sequence of numbers into an initially empty binary search tree. Then you are supposed to count the total number of nodes in the lowest 2 levels of the resulting tree.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤1000) which is the size of the input sequence. Then given in the next line are the N integers in [−1000,1000] which are supposed to be inserted into an initially empty binary search tree.
Output Specification:
For each case, print in one line the numbers of nodes in the lowest 2 levels of the resulting tree in the format:
n1 + n2 = n
where n1 is the number of nodes in the lowest level, n2 is that of the level above, and n is the sum.
Sample Input:
10
25 30 42 16 20 20 35 -5 28 22
Sample Output:
3 + 4 = 7
题目大意:按照给定的序列建立一颗二叉排序树,然后输出最下面两层的结点个数。
#include<bits/stdc++.h>
using namespace std;
typedef struct Tree {
int data;
int level; // 结点所在的层数
struct Tree *lchild, *rchild;
}bstnode, *bstree;
int n, a[1010];
int height = 0; //树高
int sum1 = 0, sum2 = 0;
void BST_insert(bstree &T, int k, int cnt) {
height = max(height, cnt);
if(T == NULL) {
T = (bstree) malloc (sizeof(bstnode));
T -> data = k;
T -> level = cnt;
T -> lchild = T -> rchild = NULL;
}
else if(k <= T -> data) BST_insert(T -> lchild, k, cnt + 1);
else BST_insert(T -> rchild, k, cnt + 1);
}
void Create_BST(bstree &T) {
T = NULL;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
BST_insert(T, a[i], 1);
}
}
void inorder(bstree T) {
if(T == NULL) return;
inorder(T -> lchild);
//cout << T -> data << " ";
if(T -> level == height) sum1++;
if(T -> level == height - 1) sum2++;
inorder(T -> rchild);
}
int main() {
bstree tree;
Create_BST(tree);
inorder(tree);
printf("%d + %d = %d", sum1, sum2, sum1 + sum2);
return 0;
}
边栏推荐
- CDH集群集成外部Flink(改进版-与时俱进)
- strlen和sizeof的区别
- Huawei's entry into the commercial market: due to the trend, there are many challenges
- Plato farm is expected to further expand its ecosystem through elephant swap
- 标准对话框 QMessageBox
- 如何做数据平滑迁移:双写方案
- STM32_ HAL_ SUMMARY_ NOTE
- 再一个技巧,每月稳赚3万+
- 【报错】:Cannot read properties of undefined (reading ‘prototype‘)
- Open the door of programming
猜你喜欢

「Photoshop2021入门教程」调整图片到不同的长宽比

C语言 通讯录管理系统(链表,手机号码分段存储,txt文件存取,完整源码)

Unity:Resource Merging、Static Batching、Dynamic Batching、GPU Instancing

HCIA static routing basic simulation experiment

Two way republication experiment

Solution to the third game of 2022 Hangzhou Electric Multi school league

事件(event)

Dynamic routing configuration

Interesting C language
![[search] - multi source BFS + minimum step model](/img/42/11b5b89153ab48d837707988752268.png)
[search] - multi source BFS + minimum step model
随机推荐
【搜索】—— 多源BFS + 最小步数模型
数字中国建设峰会闭幕,现场海量图片一览!
会议OA之我的审批
事件总结-常用总结
[search] flood fill and shortest path model
How to copy Photoshop layers to other documents
动态内存函数的介绍(malloc free calloc realloc)
The digital China Construction Summit ended with a list of massive pictures on site!
CDH集群集成外部Flink(改进版-与时俱进)
MySQL download and installation & perfect uninstall
Grid layout
【搜索】双向广搜 + A*
TCP's three handshakes and four waves
利用Power Automate,轻松下载Power BI报告中的数据
项目对接支付宝支付,内网穿透实现监听支付宝的支付成功异步回调通知
[error reporting] cannot read property 'parsecomponent' of undefined
Final Cut Pro Chinese tutorial (1) basic understanding of Final Cut Pro
Explanation of index failure principle and its common situations
R-score reproduction R-Precision evaluation index quantitative text generation image r-score quantitative experiment whole process reproduction (R-Precision) quantitative evaluation experiment step on
安装Pygame