棧是 一種特殊的線性表,他只能從棧頂操作(輸入和輸出,刪除,插入)。
佔位內無元素的為空棧。
棧的基本操作有:進棧(棧頂插入),出棧(刪除棧頂),建立棧(初始化棧),判斷棧是否為滿或空,取棧頂元素等運算。
1.initstrack(s) 初始化棧為空
2.clearstack(s)把棧置為空
3.isempty(s)判斷棧是否為 空
4.isfull(s)判斷棧是否為滿
5.push(s,x)把x存入棧s中
6.pop(s,x )刪除棧頂元素x
7.gettop(s,x)把棧頂元素給x
棧作為一種特殊的線性表,分為順序儲存結構(順序棧)和鏈式儲存結構(鏈棧)
leetcode刷題筆記 棧1
給定兩個沒有重複元素的陣列 nums1 和 nums2 其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下乙個比其大的值。nums1 中數字 x 的下乙個更大元素是指 x 在 nums2 中對應位置的右邊的第乙個比 x 大的元素。如果不存在,對應位置輸出 1。...
棧的運用(1)
問題描述 火車排程站的入口處有n 節硬席或軟席車廂 以h和 s表示 等待排程,試編寫演算法,輸出對這 n節車廂進行排程的操作 即入棧或出棧操作 序列,使得所有軟席車廂都被調整到硬席車廂之前。問題分析 此題主要解決的問題是,不管是入棧還是出棧,軟席車廂要在硬席車廂之前 一開始能想到的效果就是一頭一尾都...
演算法筆記(二)單調棧(1)最大矩形
單調棧也是演算法題中常用的一種方法,這裡總結一下思路 雖然題目的難度為hard,但是思路還是很好想到的,難點在於優化的部分。我們可以遍歷每根柱子 i 並且以當前柱子的高度 height i 作為此矩形 rectangle i 的高 假設矩形的高為豎直方向的,寬為水平方向 對於此矩形的寬 width ...