Stack in Scala
Last Updated :
25 Apr, 2019
A stack is a data structure that follows the last-in, first-out(LIFO) principle. We can add or remove element only from one end called top. Scala has both mutable and immutable versions of a stack.
Syntax :
import scala.collection.mutable.Stack
var s = Stack[type]()
// OR
var s = Stack(val1, val2, val3, ...)
Operations on Stack
Once stack has been created we can either push elements to the stack or pop them out of the stack.
- Push: We can push element of any type to the stack using push() function. All elements must have same data type.
Example :
import scala.collection.mutable.Stack
object GfG
{
def main(args : Array[String])
{
var s = Stack[Int]()
s.push( 5 )
s.push( 1 )
s.push( 2 )
println( "s:" + s)
var s 2 = Stack[Int]()
s 2 .push( 5 , 1 , 2 )
println( "s2:" + s 2 )
}
}
|
Output:
s:Stack(2, 1, 5)
s2:Stack(2, 1, 5)
- Pop: We can pop element from top of the stack using pop function. The function returns the same type as that of elements of the stack.
Example :
import scala.collection.mutable.Stack
object GfG
{
def main(args : Array[String])
{
var s = Stack[Int]()
s.push( 5 )
s.push( 1 )
s.push( 2 )
println(s)
println( "Popped:" + s.pop)
println( "Popped:" + s.pop)
println( "Popped:" + s.pop)
}
}
|
Output:
Stack(2, 1, 5)
Popped:2
Popped:1
Popped:5
Other Functions
Other Functions :
Let’s discuss some more functions with examples.
- isEmpty: To check whether the stack is empty. Returns true if it is empty.
Example :
import scala.collection.mutable.Stack
object GfG
{
def main(args : Array[String])
{
var s = Stack[Int]()
s.push( 5 )
s.push( 1 )
s.push( 2 )
println(s)
println( "Popped:" + s.pop)
println( "Popped:" + s.pop)
println( "Empty:" + s.isEmpty)
println( "Popped:" + s.pop)
println( "Empty:" + s.isEmpty)
}
}
|
Output:
Stack(2, 1, 5)
Popped:2
Popped:1
Empty:false
Popped:5
Empty:true
- top: Returns the element that is currently at the top of the stack.
Example :
import scala.collection.mutable.Stack
object GfG
{
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)
}
}
|
Output:
Stack(2, 1, 5)
Top: 2
Popped:2
Top: 1
- size:Returns the number of elements present in the stack.
Example :
import scala.collection.mutable.Stack
object GfG
{
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)
}
}
|
Output:
Stack(2, 1, 5)
Size: 3
Popped:2
Size: 2
Please Login to comment...