二叉查找树——A1099.Build a Binary Search Tree(30) 非完全二叉查找树,但是给出了左右孩子节点,利用左右孩子节点构建二叉查找树,与上一题形成对比
Posted jasonpeng1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉查找树——A1099.Build a Binary Search Tree(30) 非完全二叉查找树,但是给出了左右孩子节点,利用左右孩子节点构建二叉查找树,与上一题形成对比相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h> #include <stdio.h> #include <stdlib.h> #include <queue> using namespace std; const int maxn = 110; struct Node{ int data; int lchild; int rchild; }Node[maxn]; int n,in[maxn],num = 0; void inOrder(int root){ if(root == -1){ return; } inOrder(Node[root].lchild); Node[root].data = in[num++]; inOrder(Node[root].rchild); } void BFS(int root){ queue<int> q; q.push(root); num = 0; while(!q.empty()){ int now = q.front(); q.pop(); printf("%d",Node[now].data); num++; if(num < n){ printf(" "); } if(Node[now].lchild != -1){ q.push(Node[now].lchild); } if(Node[now].rchild != -1){ q.push(Node[now].rchild); } } } int main(){ scanf("%d",&n); int temp; for(int i =0;i<n;++i){ scanf("%d%d",&Node[i].lchild,&Node[i].rchild); } for(int i=0;i<n;++i){ scanf("%d",&temp); in[i] = temp; } sort(in,in+n); inOrder(0); BFS(0); system("pause"); return 0; }
以上是关于二叉查找树——A1099.Build a Binary Search Tree(30) 非完全二叉查找树,但是给出了左右孩子节点,利用左右孩子节点构建二叉查找树,与上一题形成对比的主要内容,如果未能解决你的问题,请参考以下文章
1099 Build A Binary Search Tree [二叉搜索树/中序层次遍历]
1099 Build A Binary Search Tree (30 分)难度: 一般 / 知识点: 建立二叉搜索树
PAT Advanced 1099 Build A Binary Search Tree (30) [?叉查找树BST]
1099 Build A Binary Search Tree
1099. Build A Binary Search Tree (30)二叉树——PAT (Advanced Level) Practise