码迷,mamicode.com
首页 > 其他好文 > 详细

判断后序序列是否合法

时间:2014-10-02 18:33:23      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   div   art   c   on   log   amp   

自己写的

#include<stdio.h>
bool check(int a[],int start,int end);
void main()
{
//	int a[]={5,7,6,9,11,10,8};
	int a[]={7,4,6,5};
	int len=sizeof(a)/sizeof(int);
	if(check(a,0,len-1))
		printf("ok\n");
	else printf("not ok\n");
}

bool check(int a[],int start,int end)
{
	if(end==start)
		return 1;
	int s=start,e=end;
	while(s<e && a[s]<=a[end])
		s++;
	if(s==e)
		return 1;
	int newend=s-1;
	while(s<e && a[s]>=a[end])
		s++;
	if(s<e || s==e && a[s]<a[end])
		return 0;
	bool one,two;
	one=check(a,start,newend);
	two=check(a,newend+1,end-1);
	return one & two;
}

  

判断后序序列是否合法

标签:blog   io   ar   div   art   c   on   log   amp   

原文地址:http://www.cnblogs.com/notlate/p/4004235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!