国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

1043. Is It a Binary Search Tree (25)

2019-11-08 20:11:26
字體:
供稿:網(wǎng)友

題目要看仔細,判斷兩次,成功輸出后序,不成功輸出NO 注:左是小于,右是大于等于

#include<iostream>#include<stdlib.h>#define INF 0x3f3f3f#PRagma warning(disable:4996)using namespace std;int N;int comp;bool flag;struct node{ int data; node *l, *r;};node *e;void postorder(node *&a)//后序輸出二叉樹{ if (a->l != NULL) postorder(a->l); if (a->r != NULL) postorder(a->r); if (a==e) printf("%d/n", a->data); else printf("%d ", a->data);}void preorder(int low, int high)//根據(jù)前序及排列樹建立二叉樹 { if (!flag)return; if (low == high) { return; } int mid=-1; for (int t = low + 1;t <= high;t++) if ((e + t)->data >= (e + low)->data) {mid = t;break;} if (mid == -1) {(e + low)->l = e + low + 1;preorder(low + 1, high );} else { for (int t = mid+1;t <= high;t++) if ((e + t)->data < (e + low)->data) {flag = false;return;} if (mid == low + 1) { (e + low)->r = e + mid;preorder(mid, high ); } else { (e + low)->l = e + low + 1;preorder(low + 1, mid - 1 ); (e + low)->r = e + mid;preorder(mid, high ); } }}void preorder2(int low, int high)//鏡像建立{ if (!flag)return; if (low == high) { return; } int mid = -1; for (int t = low + 1;t <= high;t++) if ((e + t)->data < (e + low)->data) { mid = t;break; } if (mid == -1) { (e + low)->l = e + low + 1;preorder2(low + 1, high ); } else { for (int t = mid+1;t <= high;t++) if ((e + t)->data >= (e + low)->data) { flag = false;return; } if (mid == low + 1) { (e + low)->r = e + mid;preorder2(mid, high ); } else { (e + low)->l = e + low + 1;preorder2(low + 1, mid - 1 ); (e + low)->r = e + mid;preorder2(mid, high ); } }}int main(){ cin >> N; e = (node *)malloc(sizeof(node)*N); for (int t = 0;t < N;t++) { cin >> (e + t)->data;(e + t)->l = (e + t)->r = NULL; } flag = true; preorder(0, N - 1); if (!flag) { flag = true;preorder2(0, N - 1); } if (!flag) cout << "NO" << endl; else { cout << "YES" << endl; postorder(e); }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 图们市| 东源县| 蒲城县| 阿拉善右旗| 察哈| 陆良县| 柘荣县| 天峻县| 江源县| 康乐县| 连山| 迁安市| 富宁县| 安康市| 阿瓦提县| 浪卡子县| 无棣县| 巴青县| 固安县| 建始县| 安泽县| 鸡东县| 叙永县| 兴安盟| 永定县| 革吉县| 汉沽区| 横峰县| 准格尔旗| 土默特左旗| 米脂县| 门头沟区| 建瓯市| 乐平市| 浦江县| 土默特左旗| 石城县| 湛江市| 大同市| 壶关县| 大荔县|