我有話想說.
今天本來想再鞏固一下棧的基礎,去leedcode去做了關於棧的練習,結果因為一句**(是在操作完之後沒有將top值還原)搞到心態炸了!
太難了,各位仁兄寫**一定一定要考慮全面。否則你就是下乙個心態**的我(幸災樂禍~)
好啦,言歸正傳——
請你設計乙個支援下述操作的棧。
實現自定義棧類 customstack :
customstack(int maxsize):用maxsize初始化物件,maxsize 是棧中最多能容納的元素數量,棧在增長到maxsize 之後則不支援 push 操作。
void push(int x):如果棧還未增長到 maxsize ,就將 x 新增到棧頂。
int pop():彈出棧頂元素,並返回棧頂的值,或棧為空時返回 -1 。
void inc(int k, int val):棧底的 k 個元素的值都增加 val 。如果棧中元素總數小於 k ,則棧中的所有元素都增加 val 。
typedef
struct
customstack;
customstack*
customstackcreate
(int maxsize)
void
customstackpush
(customstack* obj,
int x)
intcustomstackpop
(customstack* obj)
void
customstackincrement
(customstack* obj,
int k,
int val)
int temp=obj->top;
if(k>=
(obj->top)+1
)}else
}//不把top的值再賦回來就沒了!
obj->top=temp;
//你是不是想整死老子!!!
}void
customstackfree
(customstack* obj)
}
對我自己的忠告:如果沒有較好的思維能力,還是老老實實把else語句加上;
如果返回值為void,但同時又需要在可能出錯的地方終止程式時,可寫作return ;
**一定要追求結構化,函式化。
會精練一些題,明天寫快慢指標相關的題。加油!!!
每日演算法 4月11日 02
給定兩個序列,分別為入棧序列和出棧序列,判斷出棧序列是否合理,注 入棧時可能不是一次性全部入棧,也可能不是一次性全部出棧 例如 輸入 pushed 1,2,3,4,5 popped 4,3,5,1,2 輸出 false 解釋 1 不能在 2 之前彈出。首先確定要排除特殊情況,比如給定序列為空或者給定...
Qtum量子鏈週報(4月8日 4月14日)
qtum 量子鏈4月8日 4月14日 新聞動態回顧 qtum量子鏈受邀出席日本teamz區塊鏈峰會 4月6 7日 日本時間 第五屆全球區塊鏈峰會teamz blockchain summit在日本東京盛大召開。qtum量子鏈創始人帥初受邀出席,以區塊鏈技術先驅和行業開拓者的角度 了區塊鏈行業當下急需...
8月14日 每日安全知識熱點
資訊類 黑客激進主義開始轉向惡意欺詐行動 麻省理工和微軟研究院製造乙個 智慧型 紋身,可以讓你遠端控制你的 技術類 使用afl對nginx進行fuzzing northsec 2016會議所有 rooting三星ip攝像頭 來自usenix的 針對蘋果imessage的選擇密文攻擊 armv8 sh...