SDUT 3333 数据结构实验之栈六:下一较大值(二)
来源:互联网 发布:打印发票软件 编辑:程序博客网 时间:2024/05/21 12:43
点击打开题目链接
#include <bits/stdc++.h>using namespace std;struct node{ int data;//当前数值 int Id;//标记当前数值Id所在,若找到其后的较大值,更新其所在Id数值 int nextdata;//下一较大值};node _array[100010];int main(){ int n, k, m; stack<node>S; while(cin >> k) { for(int t = 1; t <= k; t++) { while(!S.empty()) { S.pop(); }//栈清空 cin >> n; for(int j = 1; j <= n; j++) { cin >> _array[j].data; _array[j].Id = j; _array[j].nextdata = -1; if(S.empty()) { S.push(_array[j]); } else { while(!S.empty())//不断取其栈顶元素,更新其栈顶元素下一较大值 { node tmp = S.top();//取栈顶元素 int k = tmp.Id;//获取栈顶元素Id if(tmp.data < _array[j].data) { _array[k].nextdata = _array[j].data;//更新栈顶元素Id所在的较大值 S.pop();//将较大值出栈 } else break; } S.push(_array[j]);//将当前数值入栈,便于查找当前值下一较大值 } } for(int i = 1; i <= n; i++) { cout << _array[i].data << "-->" << _array[i].nextdata << endl; } if(t != k) { cout << endl; } } } return 0;}
0 0
- SDUT 3333数据结构实验之栈六:下一较大值(二)(栈)
- SDUT 3333 数据结构实验之栈六:下一较大值(二)
- sdut 3333 数据结构实验之栈与队列六:下一较大值(二)
- SDUT 3333 数据结构实验之栈与队列六:下一较大值(二)
- SDUT 数据结构实验之栈六:下一较大值(二)
- sdut oj3333 数据结构实验之栈六:下一较大值(二)
- 数据结构实验之栈六:下一较大值(二) (sdut oj3333)
- SDUT Oj数据结构实验之栈六:下一较大值(二)
- acm sdut 数据结构实验之栈六:下一较大值(二)
- 【单调栈】SDUT 3333 数据结构实验之栈与队列六:下一较大值(二)
- 暑假集训 7.30 数据结构实验之栈六:下一较大值(二)sdut oj3333(手写栈)
- 3333 数据结构实验之栈六:下一较大值(二)
- 3333 数据结构实验之栈与队列六:下一较大值(二)
- 数据结构实验之栈六:下一较大值(二)—栈+动态规划
- 【单调栈】数据结构实验之栈与队列六:下一较大值(二)
- 数据结构实验之栈六:下一较大值(二)
- 数据结构实验之栈六:下一较大值(二)
- SDUT3333数据结构实验之栈六:下一较大值(二)
- 五大常用算法之五:分支限界法
- NGINX 结合 lua 动态修改upstream
- 请求框架&移动请求
- 利用POI抽取word中的图片并保存在文件中
- UVA 10061-How many zero's and how many digits
- SDUT 3333 数据结构实验之栈六:下一较大值(二)
- React Native(Mac篇)
- 使用Jmeter进行http接口性能测试
- ios-微信浏览器刷新标题document.title
- CMFCButton类介绍
- Eclipse常用快捷键
- 美团机器学习岗面经
- 【CodeForces】699A - One Bomb(思维)
- Service Intent must be explicit错误