Scala中的堆栈
堆栈是一种遵循后进先出(LIFO) 原则的数据结构。我们只能从称为top的一端添加或删除元素。 Scala 有可变和不可变版本的堆栈。
句法 :
import scala.collection.mutable.Stack
var s = Stack[type]()
// OR
var s = Stack(val1, val2, val3, ...)
堆栈上的操作
创建堆栈后,我们可以将元素推送到堆栈或将它们从堆栈中弹出。
- Push :我们可以使用push()函数将任何类型的元素推送到堆栈。所有元素必须具有相同的数据类型。
例子 :// Scala program to // push element // to the stack import scala.collection.mutable.Stack // Creating object object GfG { // Main method def main(args:Array[String]) { var s = Stack[Int]() // pushing values // one at a time s.push(5) s.push(1) s.push(2) println("s:" + s) var s2 = Stack[Int]() // pushing multiple values s2.push(5,1,2) println("s2:" + s2) } }
输出:
s:Stack(2, 1, 5) s2:Stack(2, 1, 5)
- Pop :我们可以使用pop函数从栈顶弹出元素。该函数返回与堆栈元素相同的类型。
例子 :// Scala program to // pop element from // top of the stack import scala.collection.mutable.Stack // Creating object object GfG { // Main method def main(args:Array[String]) { var s = Stack[Int]() s.push(5) s.push(1) s.push(2) println(s) // pop element from // top of the stack println("Popped:" + s.pop) println("Popped:" + s.pop) println("Popped:" + s.pop) } }
输出:
Stack(2, 1, 5) Popped:2 Popped:1 Popped:5
其他功能
其他功能:
让我们通过示例讨论更多功能。
- isEmpty :检查堆栈是否为空。如果为空,则返回true 。
例子 :// Scala program to // check if the stack // is empty import scala.collection.mutable.Stack // Creating object object GfG { // Main method def main(args:Array[String]) { var s = Stack[Int]() s.push(5) s.push(1) s.push(2) println(s) // pop element from // top of the stack println("Popped:" + s.pop) println("Popped:" + s.pop) println("Empty:" + s.isEmpty) println("Popped:" + s.pop) // all three elements popped println("Empty:" + s.isEmpty) } }
输出:
Stack(2, 1, 5) Popped:2 Popped:1 Empty:false Popped:5 Empty:true
- top :返回当前位于栈顶的元素。
例子 :// Scala program to // print top of stack import scala.collection.mutable.Stack // Creating object object GfG { // Main method def main(args:Array[String]) { var s = Stack[Int]() s.push(5) s.push(1) s.push(2) println(s) println("Top: " + s.top) println("Popped:" + s.pop) println("Top: " + s.top) } }
输出:
Stack(2, 1, 5) Top: 2 Popped:2 Top: 1
- size :返回堆栈中存在的元素数。
例子 :// Scala program to // print size of the stack import scala.collection.mutable.Stack // Creating object object GfG { // Main method def main(args:Array[String]) { var s = Stack[Int]() s.push(5) s.push(1) s.push(2) println(s) println("Size: " + s.size) println("Popped:" + s.pop) println("Size: " + s.size) } }
输出:
Stack(2, 1, 5) Size: 3 Popped:2 Size: 2