Explaining Stack in Detail

Stack

Stacks are the result of approaching a LIFO (Last in, First out) ordering with list node connection behavior. This means that element inside the stack are connected like a list but are added and extracted approaching LIFO.

[1] Lifo …


This content originally appeared on DEV Community and was authored by Dhruv Panchal

Stack

Stacks are the result of approaching a LIFO (Last in, First out) ordering with list node connection behavior. This means that element inside the stack are connected like a list but are added and extracted approaching LIFO.

Stack

[1] Lifo stack | https://commons.wikimedia.org/wiki/File:Lifo_stack.png

Based on that, the to methods that a stack should have to be called that way are pop which remove the top element from the stack and returns it, and push which adds a new element on top of the stack.

Minimal methods to work with Stacks

- Pop

Java implementation of the pop method in an array based stack

public Object pop() {
        if (!isEmpty()) {
            Object object = array[top];
            array[top--] = null;
            return object;
        } else {
            return null;
        }
    }

As you see, after obtaining the element in top of the stack, it is immediately removed from it.

- Push

Java implementation of the push method in an array based stack

public boolean push(Object object) {
    if (top + 1 < size) {
        try {
            array[++top] = object;
            return true;
        } catch (Exception e) {
            System.out.println(e);
            return false;
        }
    } else {
        return false;
    }
}

- Peek

In some circumstances the user may want to check the value stored in the top of the stack without removing it. In this scenarios is where peek method is useful, since it return the value without removing it from the stack. This way and extra push is not necessary.

Java implementation of peek in a Array based stack

public Object peek() {
    return (!isEmpty()) ? array[top] : null;
}

Array and List based stacks

Example of an array based stack, of four elements. It will only receive four elements, if it reach it's max length, incoming values were not be added.

Stack

[2] Stack (data structure) LIFO | https://commons.wikimedia.org/wiki/File:Stack_(data_structure)_LIFO.svg

The mayor difference between an array based stack and one implemented using lists is that the first one is usually implemented with a static size, this means that it will only accept a specific number of element, the other one, will allow the user to add elements until memory is full.

References

Identifier Author Source
1 Maxtremus https://commons.wikimedia.org/wiki/File:Lifo_stack.png
2 Original uploader: Fibi
Derivative work: Marek M
https://commons.wikimedia.org/wiki/File:Stack_(data_structure)_LIFO.svg


This content originally appeared on DEV Community and was authored by Dhruv Panchal


Print Share Comment Cite Upload Translate Updates
APA

Dhruv Panchal | Sciencx (2021-04-16T05:06:50+00:00) Explaining Stack in Detail. Retrieved from https://www.scien.cx/2021/04/16/explaining-stack-in-detail/

MLA
" » Explaining Stack in Detail." Dhruv Panchal | Sciencx - Friday April 16, 2021, https://www.scien.cx/2021/04/16/explaining-stack-in-detail/
HARVARD
Dhruv Panchal | Sciencx Friday April 16, 2021 » Explaining Stack in Detail., viewed ,<https://www.scien.cx/2021/04/16/explaining-stack-in-detail/>
VANCOUVER
Dhruv Panchal | Sciencx - » Explaining Stack in Detail. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/16/explaining-stack-in-detail/
CHICAGO
" » Explaining Stack in Detail." Dhruv Panchal | Sciencx - Accessed . https://www.scien.cx/2021/04/16/explaining-stack-in-detail/
IEEE
" » Explaining Stack in Detail." Dhruv Panchal | Sciencx [Online]. Available: https://www.scien.cx/2021/04/16/explaining-stack-in-detail/. [Accessed: ]
rf:citation
» Explaining Stack in Detail | Dhruv Panchal | Sciencx | https://www.scien.cx/2021/04/16/explaining-stack-in-detail/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.