棧之資料結構實驗之棧與佇列五 下一較大值(一)

2021-08-19 03:57:08 字數 1197 閱讀 3845

資料結構實驗之棧與佇列五:下一較大值(一)

time limit: 1000 ms memory limit: 65536 kib

submit statistic discuss

problem description

對於包含n(1<=n<=1000)個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出-1。

input

輸入有多組,第一行輸入t(1<=t<=10),表示輸入的組數;

以後是 t 組輸入:每組先輸入n,表示本組序列的元素個數,之後依次輸入本組的n個元素。

output

輸出有多組,每組之間輸出乙個空行(最後一組之後沒有);

每組輸出按照本序列元素的順序,依次逐行輸出當前元素及其查詢結果,兩者之間以–>間隔。

sample input

2 4 12 20 15 18

5 20 15 25 30 6

sample output

12–>20

20–>-1

15–>18

18–>-1

20–>25

15–>25

25–>30

30–>-1

6–>-1

hint

本題的資料量小、限時要求低,可以不用棧來完成。

source

#include

#include

int a[1001];

int main()

for(i=1; i<=n; i++)

else flag=0;

}if(flag==0)

}if(!t)break;

else}}

return

0;}

note:弄懂了剛上大學時的乙個不懂點,真的是當時不能明白的事情隨著時間的推移,慢慢的就會明白啊,

這個while(t–)執行的時候先判斷,後執行,執行就是t減1的意思,假設t的初始值是5的話,當5進去,先判斷滿足》0,整個函式中t是4,然後4進去,判斷符合》0,整個函式中t是3……當t是1的時候,整個函式中t是0,最後判斷的時候進不去了,所以最後一組的t是0;

當while(–t)時,還是假設t是5,先執行後判斷,整個函式中t是4……當t為1的時候,先執行為0,在判斷就進不去了

資料結構之棧與佇列

寫在前面 棧與佇列是兩種不同特點的資料結構。棧遵循著先進後出的特點,它就像乙個器皿,先放進去的後被取出來,後放進去也就是靠近瓶口的先出來。佇列,就像它的名字一般,它的結構類似於排隊,先進先出,後進後出。棧的實現package stack public class mystack public mys...

資料結構之棧與佇列

順序棧儲存結構 define stack size 50 typedef structstack 順序棧初始化 void initstack stack s 順序進棧 int push stack s,type x 順序棧出棧 int pop stack s,type x 鏈棧儲存結構 typede...

資料結構 之 棧與佇列

順序表實現 class stack object 棧 def init self self.list 選用順序表或鍊錶 defpush self,item 壓棧 self.時間複雜度o 1 self.list.insert 0,item 頭部插入,時間複雜度o n 說明 鍊錶結構的話,頭部插入。de...