首页 > 其他分享 >数据结构实验之栈与队列六:下一较大值(二)(SDUT 3333)

数据结构实验之栈与队列六:下一较大值(二)(SDUT 3333)

时间:2023-02-14 13:03:52浏览次数:38  
标签:sta int top 之栈 3333 -- while SDUT scanf


#include <bits/stdc++.h>
using namespace std;
int a[1000006];
int b[1000006];
int sta[100006];
int main()
{
int t,n,i,j,top;
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d",&n);
for( i = 1; i <= n; i ++)
{
scanf("%d", &a[i]);
}
top = 0;
b[n] = -1;
for(i = n - 1; i >= 1; i --)
{
if(a[i + 1] > a[i])
{
b[i] = a[i + 1];
sta[top ++] = b[i];
// cout << "sta[top] = "<< sta[top - 1] << endl;
}
else {
int f = 1;
while(top)
{
// cout << "top = " <<top << endl;
if(sta[top - 1] > a[i])
{
b[i] = sta[top - 1];
f = 0;
break;
}
top --;
}
if(top == 0 || f == 1) b[i] = -1;
}
}
for(i = 1; i <= n; i ++)
{
printf("%d-->%d\n",a[i],b[i]);
}
if(t != 0) printf("\n");
}

}
return 0;
}

 

标签:sta,int,top,之栈,3333,--,while,SDUT,scanf
From: https://blog.51cto.com/u_15965659/6056619

相关文章

  • 顺序表应用7:最大子段和之分治递归法(SDUT 3664)
    #include<bits/stdc++.h>usingnamespacestd;constintmaxn=50005;intnum=0;structnode{int*elem;intlen;};voidCreatlist(structnode&list,intn){......
  • 数据结构实验之栈与队列四:括号匹配(SDUT 2134)
    #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;chars[100];chara[100];intmain(){inti,j,k,f,top,len;while(gets(s)!='\0'......
  • SDUT DAG优化
    SDUTDAG优化题目描述大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。输入输入第一行为一个整数n(n<100),表示该组输入的表达式的个数之后n行为表达式......
  • SDUT 简单的代码生成程序
    SDUT简单的代码生成程序Description通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有>空寄存器>内存中存有>以后不再使用......
  • 数据结构实验之栈八:栈的基本操作
    数据结构实验之栈八:栈的基本操作TimeLimit:1000MSMemorylimit:65536K题目描述堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将......
  • 数据结构实验之栈七:出栈序列判定
    数据结构实验之栈七:出栈序列判定TimeLimit:30MSMemorylimit:1000K题目描述给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依......
  • Catlan数之栈的出栈序列-legend
    栈的出队顺序问题:(一)Catlan数:(1)给出入栈序列,求出所有的出栈的序列个数: C(2n,n)/(n+1);(2)给出入栈序列,求出所有的出栈序列;1)举例:1、2、3这三个数字,入栈并出栈共有5种方式,分......
  • Java数据结构之栈和队列
    原文链接:https://blog.csdn.net/fear_wolf/article/details/127459611文章目录一、栈(Stack)(一)概念(二)栈的使用(三)栈的模拟实现(四)问题思考1.栈,虚拟机栈,栈帧有什么区别?2.单链......
  • 每日算法之栈的压入、弹出序列
    JZ31栈的压入、弹出序列描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,......
  • 3-4 计算长方形的周长和面积 sdut-oj
    #include<iostream>usingnamespacestd;classRect{ private:  doublelen,width; public:  Rect(doublea=0,doubleb=0);  Rect(constRect&r);  voi......