scala資料結構 三 棧

2021-10-07 22:51:55 字數 864 閱讀 3596

棧主要兩個操作: 入棧(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 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...