Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Stack in Scala

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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 :




    // 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)
          
        }
    }

    
    

    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 :




    // 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)
        }
    }

    
    

    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 :




    // 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)
        }
    }

    
    

    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 :




    // 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)
        }
    }

    
    

    Output:

    Stack(2, 1, 5)
    Top: 2
    Popped:2
    Top: 1
  • size:Returns the number of elements present in the stack.
    Example :




    // 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)
        }
    }

    
    

    Output:

    Stack(2, 1, 5)
    Size: 3
    Popped:2
    Size: 2

My Personal Notes arrow_drop_up
Last Updated : 25 Apr, 2019
Like Article
Save Article
Similar Reads
Related Tutorials