Stack: Difference between revisions

From Computer Science Wiki
(Created page with "right|frame|Programming basics<ref>http://www.flaticon.com/</ref> In computer science, a stack is an abstract data type that serves as a collection of ele...")
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[file:arrows.png|right|frame|Programming basics<ref>http://www.flaticon.com/</ref>]]
[[file:arrows.png|right|frame|Programming basics<ref>http://www.flaticon.com/</ref>]]


In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the most recently added element that was not yet removed. The order in which elements come off a stack gives rise to its alternative name, LIFO (for last in, first out). Additionally, a peek operation may give access to the top without modifying the stack.
In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the most recently added element that was not yet removed. The order in which elements come off a stack gives rise to its alternative name, '''LIFO (for last in, first out)'''. Additionally, a peek operation may give access to the top without modifying the stack.


The name "stack" for this type of structure comes from the analogy to a set of physical items stacked on top of each other, which makes it easy to take an item off the top of the stack, while getting to an item deeper in the stack may require taking off multiple other items first<ref>https://en.wikipedia.org/wiki/Stack_(abstract_data_type)</ref>.
The name "stack" for this type of structure comes from the analogy to a set of physical items stacked on top of each other, which makes it easy to take an item off the top of the stack, while getting to an item deeper in the stack may require taking off multiple other items first<ref>https://en.wikipedia.org/wiki/Stack_(abstract_data_type)</ref>.
Line 7: Line 7:
[[File:Lifo stack.png]]<ref>By Maxtremus - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=44458752</ref>
[[File:Lifo stack.png]]<ref>By Maxtremus - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=44458752</ref>


Characteristics:
Last in, first out (LIFO).
Examples of the applications of stacks may include running recursive processes, return memory addresses


Access methods:
• push
• pop
• isEmpty.


== Access methods of stack ==
* push
* pop
* isEmpty
== practical applications of stack ==
We can see stack-like behavior with a redo-undo features at many places like editors, photoshop and forward and backward feature in web browsers
== A python learning activity ==
Using the python list data structure, implement 3 stack functions, push, pop and isEmpty. We assume we know the name of the stack.
<syntaxhighlight lang="python">
myStack = []
def push(element):
    # do stuff here
    return
def pop(element):
    # do stuff here
    return
def isEmpty(stackName):
    # this function should return as boolean True or False
    return
</syntaxhighlight>


== stack ==  
== stack ==  
This video discusses the C programming language, but the content is clear to describe stack.  
This video discusses the C programming language, but the content is clear to describe stack.  


<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/9Tp8wHD66lw" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/9Tp8wHD66lw" frameborder="0" allowfullscreen></iframe>
</html>


== Standards ==  
== Standards ==  
Line 31: Line 62:
== See Also ==
== See Also ==


* [[abstract data types]]
* [[Abstract data structures]]
 
== External Links ==
 


== References ==
== References ==

Revision as of 13:15, 25 November 2020

Programming basics[1]

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the most recently added element that was not yet removed. The order in which elements come off a stack gives rise to its alternative name, LIFO (for last in, first out). Additionally, a peek operation may give access to the top without modifying the stack.

The name "stack" for this type of structure comes from the analogy to a set of physical items stacked on top of each other, which makes it easy to take an item off the top of the stack, while getting to an item deeper in the stack may require taking off multiple other items first[2].

Lifo stack.png[3]


Access methods of stack[edit]

  • push
  • pop
  • isEmpty

practical applications of stack[edit]

We can see stack-like behavior with a redo-undo features at many places like editors, photoshop and forward and backward feature in web browsers

A python learning activity[edit]

Using the python list data structure, implement 3 stack functions, push, pop and isEmpty. We assume we know the name of the stack.

myStack = []

def push(element):

    # do stuff here

    return

def pop(element):

    # do stuff here

    return

def isEmpty(stackName):

    # this function should return as boolean True or False
    return

stack[edit]

This video discusses the C programming language, but the content is clear to describe stack.

Standards[edit]

  • Describe the characteristics and applications of a stack.
  • Construct algorithms using the access methods of a stack.

See Also[edit]

References[edit]