【棧】
對於涉及到反方向的題目,可以思考是否設定堆疊型別的資料結構:
int initial_stack(stack s){}int pop(s,node x){}
int push(s,node x){}
【佇列】
涉及到佇列的內容,做好相應的初始化基本操作函式:
int initial_queue(queue q){}
int en_queue(queue q,node x){}
int de_queue(queue q,node x){}
這樣處理起來程式結構就會清晰很多
【遞迴】
乙個直接呼叫自己或通過一系列的語句間接地呼叫自己的函式,叫遞迴函式。比如:
階乘函式:
fact(n)= 1 若n=0
= n*fact(n-1) 若n>0
2階fibonacci數列
fib(n) = 0 若n=0
= 1 若n=1
= fib(n-1) + fib(n-2) 其他情況
和ackerman函式
ack(m,n) = n+1 若m=0
= ack(m-1,1) 若n=0
=ack(m-1,ack(m,n-1)) 其他情況
學習筆記 單調佇列與單調棧
乙個具有單調性的棧。插入乙個元素時,如果直接插入不滿足單調性,就一直彈出,直到插入後滿足單調為止。luogu p1886 loj p10175 meaning of the problem 給你乙個數列 a 多組長度為 k 的區間的最大值與最小值。solution 一道非常經典的單調佇列題。以最大值...
佇列與棧 的筆記
實話說,其實從高中開始學資訊奧賽時開始,一直重點都是學習演算法以及思想,根本沒怎麼理會資料結構,因為除了了樹結構,其它的結構都可以籠統歸到方法思想這一類,所以從來遇到問題,都是想用什麼什麼方法,然後這方法後來才發現原來叫 棧 佇列 也就是說,接觸到的問題的解決方案裡,從來都是用到了它們的思想,並且是...
棧與佇列的學習
queuem m.empty 是的話返回true,不是返回false m.push 從已有元素後面增加元素 m.size 輸出現有元素的個數 m.front 顯示第乙個元素 m.back 顯示最後乙個元素 m.pop 清除第乙個元素 不返回該元素 m.size 統計佇列個數 棧 stack 先進後出...