您的位置:首页 > 其它

栈 之 寻找下一个较大元素 next greater element

2016-02-24 11:53 316 查看
//栈 之 寻找下一个较大元素 next greater element

#include <iostream>

#include <stdio.h>

#include <stack>

using namespace std;

void findnge(int arr[],int len){
stack<int> s;
s.push(arr[0]);
int i=1;
int top,next;
for(i=1;i<len;i++){
next = arr[i];
top = s.top();
//判断是否找到栈顶元素的nge
while(s.size()>0 && top<next){
printf("\n %d-->%d",top,next);
s.pop();//找到后弹出
if(s.size()>0)//继续判断栈顶
top = s.top();
}
//将下一个元素入栈,以便查找其nge
s.push(next);
}
while(s.size()>0){
top = s.top();
s.pop();
printf("\n %d-->%d",top,-1);
}

}

int main(){
int arr[] = {11,13,10,5,12,21,3};
int n = sizeof(arr)/sizeof(arr[0]);
findnge(arr,n);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: