堆栈是遵循线性数据结构后进先出用于将元素添加到它(LIFO)原则。
现实生活中的堆栈数据结构的一个示例是一堆书相互叠放。您可以从此书堆中移出最后放在书堆中的书。
因此,在堆栈中,元素的添加和删除仅从称为堆栈顶部的一端开始。在Scala中,可以有可变堆栈和不可变堆栈。
可变堆栈:
import scala.collection.mutable.Stack var stack_name = Stack(val1, val2, val3, ...)
Scala程序创建堆栈
import scala.collection.mutable.Stack object MyClass { def main(args: Array[String]) { val stack1 = Stack(34, 89, 1, 67, 100, 99, 50) println("Stack stack1 = " + stack1) val stack2 = Stack[String]() println("Empty Stack stack2 = " + stack2) } }
输出:
Stack stack1 = Stack(34, 89, 1, 67, 100, 99, 50) Empty Stack stack2 = Stack()
在堆栈数据结构上可以完成一些基本操作。他们是,
推
流行音乐
堆栈上的推入操作只是在堆栈中添加新元素。使用push()函数完成推入操作。推送的元素应具有相同的数据类型。
语法:
将单个元素添加到堆栈中:
stack_name.push(element)
将多个元素添加到堆栈中:
stack_name.push(element1, element2, element3)
Scala程序将元素推入堆栈
import scala.collection.mutable.Stack object MyClass { def main(args: Array[String]) { val stack1 = Stack[String]() println("Empty Stack!" + stack1) println("Adding single Element to the Stack") stack1.push("Scala") println("Stack after push operation : " + stack1) println("Adding multiple Elements to the Stack") stack1.push("Javascript", "Python", "C/C++") println("Stack after push operation : " + stack1) } }
输出:
Empty Stack!Stack() Adding single Element to the Stack Stack after push operation : Stack(Scala)Adding multiple Elements to the Stack Stack after push operation : Stack(C/C++, Python, Javascript, Scala)
说明:
该代码说明了堆栈上的推入操作。在这里,我们创建了一个名为stack1的空堆栈,然后使用push()方法将元素压入堆栈。该方法可以采用一个或多个元素并将其推入堆栈。当我们将多个元素推入堆栈时。该函数的最后一个参数将在堆栈的顶部。
完成堆栈上的弹出操作以将最后添加的元素删除到堆栈中。众所周知,弹出(删除)操作将使用pop函数从堆栈的顶部完成。
的弹出功能从堆栈中弹出一个元件,然后将其返回到即弹出的值调用代码被使用返回的弹出功能。
语法:
pop
Scala程序从堆栈中弹出元素
import scala.collection.mutable.Stack object MyClass { def main(args: Array[String]) { val langStack = Stack[String]("C/C++", "Scala", "Python", "Javascript") println("The Stack : " + langStack) println("Popping elements from stack ") println("Popped element : "+ langStack.pop) println("The Stack after pop operation : " + langStack) println("Popped element : "+ langStack.pop) println("The Stack after pop operation : " + langStack) } }
输出:
The Stack : Stack(C/C++, Scala, Python, Javascript) Popping elements from stack Popped element : C/C++ The Stack after pop operation : Stack(Scala, Python, Javascript)Popped element : Scala The Stack after pop operation : Stack(Python, Javascript)
说明:
在上面的代码中,我们已经说明了堆栈上的pop操作。在这里,我们创建了一个名为langStack的字符串类型的堆栈,其中包含四个元素。然后,我们使用pop方法将元素弹出到堆栈顶部。当pop方法返回pop元素时,我们已经打印出popped元素。