堆盤子問題

2021-07-15 05:52:38 字數 457 閱讀 8872

題目:設想有一堆盤子,堆太高可能會倒下來。因此,在現實生活中,盤子堆到一定高度時,我們就會另外堆一堆盤子。請實現資料結構setofstacks,模擬這種行為。setofstacks應該由多個棧組成,並且在前乙個棧填滿時新建乙個棧。此外,setofstacks.push()和setofstacks.pop()應該與普通棧的操作方法相同(也就是說,pop()返回的值,應該跟只有乙個棧時的情況一樣)。

高階:實現乙個popat(int index)方法,根據指定的子棧,執行pop操作。

思路:前面乙個問題比較簡單,資料結構可以用棧陣列或者棧容器,同時記錄最後乙個棧的位置,為了壓棧和出棧方便。

第二個問題有些麻煩,如果指定棧彈出元素,那麼被彈出棧的元素如果之前是滿的,彈出以後就多了乙個空位,那麼後面的棧的元素就要取過來補充,後面的棧可能需要再從它的下乙個棧取棧底元素補充。當然不保證前面的棧都是滿也是可以的,具體要看題目的要求,實現起來**過長,就略過了。

演算法練習 堆盤子 棧 ArrayList

題目 堆盤子。設想有一堆盤子,堆太高可能會倒下來。因此,在現實生活中,盤子堆到一定高度時,我們就會另外堆一堆盤子。請實現資料結構setofstacks,模擬這種行為。setofstacks應該由多個棧組成,並且在前乙個棧填滿時新建乙個棧。此外,setofstacks.push 和setofstack...

面試題 03 03 堆盤子

堆盤子。設想有一堆盤子,堆太高可能會倒下來。因此,在現實生活中,盤子堆到一定高度時,我們就會另外堆一堆盤子。請實現資料結構setofstacks,模擬這種行為。setofstacks應該由多個棧組成,並且在前乙個棧填滿時新建乙個棧。此外,setofstacks.push 和setofstacks.p...

整數劃分問題 蘋果盤子問題

整數劃分問題 整數劃分問題是演算法中的乙個經典命題之一,有關這個問題的講述在講解到遞迴時基本都將涉及。所謂整數劃分,是指把乙個正整數n寫成如下形式 n m1 m2 mi 其中mi為正整數,並且1 mi n 則為n的乙個劃分。遞迴法 遞推表示式如下 f n,m 1 n 1 or m 1 1劃分為m份,...