麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

判斷整數(shù)序列是否為二元查找樹的后序遍歷結(jié)果的解決方法

2020-01-26 16:04:53
字體:
供稿:網(wǎng)友
題目:輸入一個(gè)整數(shù)數(shù)組,判斷該數(shù)組是不是某二元查找樹的后序遍歷的結(jié)果。
如果是返回true,否則返回false。
例如輸入5、7、6、9、11、10、8,由于這一整數(shù)序列是如下樹的后序遍歷結(jié)果.
      8
     / /
   6   10
  / /    / /
  5  7 9 11
因此返回true。
如果輸入7、4、6、5,沒有哪棵樹的后序遍歷的結(jié)果是這個(gè)序列,因此返回false。
本題網(wǎng)上已經(jīng)有用遞歸單純判斷的解法.
個(gè)人解法: 先得到序列對(duì)應(yīng)的中序序列, 然后看中序序列是否從小到大有序, 得出判斷.
相比:時(shí)間復(fù)雜度相同, 增加N的空間, 但可求得對(duì)應(yīng)的中序序列.
以下為代碼:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN 100
int seq[LEN + 1] = {0};
int *mid = NULL;
int pos = 1;
void getmid(int start, int end);
int check(int num);
int main()
{
 int val;
 int num;
 int ret;
 int i;
 printf("input the sequence, end it with '-9999': ");

 num = 1;
 scanf("%d", &val);
 while(val != -9999)
 {
  seq[num] = val;
  num ++;
  scanf("%d", &val);
 }
 num--;
 mid = (int *)malloc((num + 1) * sizeof(int));
 if(mid == NULL)
 {
  printf("malloc failed./n");
  exit(1);
 }
 memset(mid, 0, num + 1);
 getmid(1, num);

 printf("mid: ");
 for(i = 1; i< num +1; i++)
 {
  printf("%d ", mid[i]);
 }
 printf("/n");
 ret = check(num);
 if(ret == -1)
 {
  printf("no./n");
 }
 else
 {
  printf("yes/n");
 }
 return 0;
}/* main() */
void getmid(int start, int end)
{
 int flag;
 if(start > end)
 {
  return;
 }
 if(start == end)
 {
  mid[pos] = seq[end];
  pos ++;
  return;
 }
 int par;
 par = start;
 flag = 0;
 while(par < end)
 {
  if(seq[par] > seq[end])
  {
   flag = 1;
   getmid(start, par - 1);
   mid[pos] = seq[end];
   pos ++;   
   getmid(par, end - 1);
   break;
  }
  par ++;
 }
 if(!flag)
 {
  getmid(start, end-1);
  mid[pos] = seq[end];
  pos ++;
 }
}/* getmid */
int check(int num)
{
 int i;

 for(i = 1; i < num; i++)
 {
  if(mid[i] > mid[i+1])
  {
   return -1;
  }
 }
 return 0;
}/* check() */
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产精品视频一区二区三区综合 | 亚洲综合精品 | 久久福利电影网 | 一级裸体视频 | 国产精品免费一区二区三区都可以 | 18欧美性xxxx极品hd | 久久久精品99 | 成人免费毛片一 | 精品中文字幕视频 | 一级黄色在线观看 | 国产九色视频在线观看 | 国产午夜精品一区二区三区不卡 | 日本a级一区 | 成人辣文 | 在线成人一区二区 | 亚洲成人福利 | 成人三级视频网站 | 日本在线视频一区二区三区 | 91精品国产99久久久久久红楼 | 国产一区二区三区四区五区精品 | 国产毛毛片一区二区三区四区 | 国产视频导航 | 成人在线视频免费 | 日韩毛片一区二区三区 | 精品麻豆cm视频在线看 | 国产精选在线 | 日韩精品一二三区 | 欧美日韩免费一区二区三区 | 欧美一区二区黄色 | 日日狠狠久久偷偷四色综合免费 | 亚洲精品午夜电影 | av在线免费观看播放 | 欧美一级精品 | 免费一级毛片在线播放视频 | 男男啪羞羞视频网站 | 国产亚洲精品久久午夜玫瑰园 | 娇喘视频在线观看 | av在线免费看网址 | 亚洲一区二区中文字幕在线观看 | 欧美爱爱一区二区 | 妇女毛片|