棧主要兩個操作: 入棧(push)和出棧(pop)
1.子程式的呼叫: 在跳往子程式前,會將下個指令的位址存到堆疊中,直到子程式執行完後再將位址取出,回到原來的程式中
2.處理遞迴: 和子程式的呼叫類似,只是除了儲存下乙個指定的位址,將引數,區域變數等資料存入堆疊中
3.表示式的轉換與求值(實際解決),計算器原理
4. 二叉樹的遍歷
5. 圖形的深度優先(depth - first) 搜尋法
package com.zyd
import scala.reflect.classtag
object stackdemo
}/**
* 使用陣列模擬棧
* * @param maxsize 容量
* @param classtag$t
$0 * @tparam t 入棧的元素型別
*/class arraystack[t: classtag]
(val maxsize: int)
//出棧
def pop()=
} //獲取棧頂元素
def peak(
): option[t]=}
}
結果
some(4)some(3)
some(2)
some(1)
Scala 系列 資料結構
本文主要對scala語言的資料結構進行介紹 陣列 array 中給出陣列型別 中給出陣列元素個數 val arr newarray int 3 下標從0開始 arr 0 10 自動推斷型別 val arr array 1 2,3 高維陣列 3行4列 val matrix array.ofdim in...
資料結構 棧 棧
可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...
資料結構與演算法(三)棧
棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...