Introduction to Stacks in Data Structures and Algorithms

 
CSCI 204: Data Structures &
Algorithms
 
Stacks
 
1
 
Stacks
 
Revised based on textbook author’s notes.
Stacks
Stacks
 
A restricted access container that
stores a linear collection.
Very common for solving
problems in computer science.
Provides a 
last-in first-out
 
(LIFO)
protocol.
 
The Stack
 
New items are added and existing items
are removed from the 
top
 of the stack.
 
Why stacks are useful?
 
Many computer science problems (and real
life problems) are solved using stacks.
We’ll touch a few here.
Determine if a string is a palindrome
Find paths among a set of cities
Evaluate math expressions
 
The palindrome problem
 
A palindrome is a string that reads the same
in forward and backward
Here is a list of palindrome
http://www.palindromelist.net
We saw the solution recursion before
A Toyota’s a Toyota.
Civic
Go dog.
Tell a ballet.
We can also solve the problem using stacks
Given a string s, put the sting into a stack,
then take the one on stack out in order (LIFO).
If the two are the same, it is a palindrome!
 
8
 
The Stack ADT
 
A 
stack
  stores a linear collection of items
with access limited to a last-in first-out order.
Adding and removing items is restricted to
the top of the stack.
 
Stack Example
# Extracts a collection of integer values from the user
# and prints them in reverse order.
from list_stack import Stack
#from pyliststack import Stack
 
PROMPT = "Enter an int value (<0 to end): "
my_stack = Stack()
 
# Extract the values and push them onto a stack.
value = int(input( PROMPT ))
while
 value >= 0 :
  my_stack.push( value )
  value = 
int
(input( PROMPT ))
# Pop the values from the stack and print each.
while
 not my_stack.is_empty() :
  value = my_stack.pop()
  
print
( value )
reverse.py
 
Stack Implementation
 
Several common ways to implement a
stack:
Python list
easiest to implement
Linked list
better choice when a large number of push
and pop operations are performed.
 
Activity
 
Implement the Stack ADT in two different ways
Using a singly linked list
Using a Python list
Slide Note
Embed
Share

Stacks are a fundamental data structure in computer science, providing a last-in, first-out (LIFO) protocol. They are essential for solving various problems, such as palindrome detection, pathfinding, and evaluating math expressions. This content explores the concept of stacks, their applications, and examples of solving problems using stacks.

  • Data structures
  • Algorithms
  • Stacks
  • Computer science
  • Palindrome detection

Uploaded on Oct 03, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. CSCI 204: Data Structures & Algorithms Stacks 1

  2. Stacks Revised based on textbook author s notes.

  3. Stacks A restricted access container that stores a linear collection. Very common for solving problems in computer science. Provides a last-in first-out (LIFO) protocol.

  4. The Stack New items are added and existing items are removed from the top of the stack.

  5. Why stacks are useful? Many computer science problems (and real life problems) are solved using stacks. We ll touch a few here. Determine if a string is a palindrome Find paths among a set of cities Evaluate math expressions

  6. The palindrome problem A palindrome is a string that reads the same in forward and backward Here is a list of palindrome http://www.palindromelist.net We saw the solution recursion before A Toyota s a Toyota. Civic Go dog. Tell a ballet.

  7. We can also solve the problem using stacks Given a string s, put the sting into a stack, then take the one on stack out in order (LIFO). If the two are the same, it is a palindrome! Original string In-stack Output civic civic civic Yes godog godog godog Yes olleh olleh hello No

  8. The Stack ADT A stack stores a linear collection of items with access limited to a last-in first-out order. Adding and removing items is restricted to the top of the stack. Stack() is_empty() len() pop() peek() push( item ) 8

  9. Stack Example reverse.py # Extracts a collection of integer values from the user # and prints them in reverse order. from list_stack import Stack #from pyliststack import Stack PROMPT = "Enter an int value (<0 to end): " my_stack = Stack() # Extract the values and push them onto a stack. value = int(input( PROMPT )) while value >= 0 : my_stack.push( value ) value = int(input( PROMPT )) # Pop the values from the stack and print each. while not my_stack.is_empty() : value = my_stack.pop() print( value )

  10. Stack Implementation Several common ways to implement a stack: Python list easiest to implement Linked list better choice when a large number of push and pop operations are performed.

  11. Activity Implement the Stack ADT in two different ways Using a singly linked list Using a Python list

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#