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

//栈 之 寻找下一个较大元素 next greater element
#include
#include
#include
using namespace std;
void findnge(int arr[],int len){
stack s;
s.push(arr[0]);
int i=1;
int top,next;
for(i=1;i next = arr[i];
top = s.top();
//判断是否找到栈顶元素的nge
while(s.size()>0 && top 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;
}

你可能感兴趣的:(Judge,Online)