.. This file is part of the OpenDSA eTextbook project. See .. http://opendsa.org for more details. .. Copyright (c) 2012-2020 by the OpenDSA Project Contributors, and .. distributed under an MIT open source license. .. avmetadata:: :author: Molly Domino Stacks ====== Objectives ---------- Upon completion of this module, students will be able to: * Describe the Stack Abstract Data Type/Data Structure and the characteristics of a Stack * Implement Stacks in Java using an Array-Based or Linked-Chain approach * Develop and use Stack methods * Test the functionality of Stack * Evaluate a range of applications / use cases to determine if use of the Stack Data Structure is appropriate Suggested Reading ~~~~~~~~~~~~~~~~~ Chapters 5 - 6 Bags from `Data Structures and Abstractions with Java, 4th edition by Frank M. Carrano and Timothy Henry `_ Introduction to Stacks ---------------------- [11:32] Introduction to Stacks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. admonition:: The Stack Interface .. code-block:: java package stack; /** * An interface for the ADT stack. * * @author Frank M. Carrano * @author Timothy M. Henry * @author maellis1 * @version May 2020 */ public interface StackInterface { /** * Adds a new entry to the top of this stack. * * @param newEntry * An object to be added to the stack. */ public void push(T newEntry); /** * Removes and returns this stack's top entry. * * @return The object at the top of the stack. * @throws stack.EmptyStackException * if the stack is empty before the operation. */ public T pop(); /** * Retrieves this stack's top entry. * * @return The object at the top of the stack. * @throws stack.EmptyStackException * if the stack is empty. */ public T peek(); /** * Detects whether this stack is empty. * * @return True if the stack is empty. */ public boolean isEmpty(); /** Removes all entries from this stack. */ public void clear(); } // end StackInterface Download `StackInterface.java `_ (right-click to download as .java file). .. raw:: html
.. raw:: html Video Slides 8.5.2-StacksIntro Checkpoint 1 ------------ .. avembed:: Exercises/MengBridgeCourse/StacksCheckpoint1Summ.html ka :long_name: Checkpoint 1 StackIntroVideoMemory Example ----------------------------- [6:25] Stack Memory Example ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
Checkpoint 2 ------------ .. avembed:: Exercises/MengBridgeCourse/StacksCheckpoint2Summ.html ka :long_name: Checkpoint 2 Stacks Array-Based Design ------------------------- [4:57] Array-Based Design ~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
Checkpoint 3 ------------ .. avembed:: Exercises/MengBridgeCourse/StacksCheckpoint3Summ.html ka :long_name: Checkpoint 3 Stacks Array Implementation --------------------------- [5:57] Array Implementation ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html Video Slides 8.5.8.1-StacksArrayImplementation.pdf Stacks Linked Chain Implementation ---------------------------------- [12:50] Linked Chain Implementation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html Video Slides 8.5.9.1-StacksLinkedChainImplementation.pdf
Video Slides 8.5.9.1-TestingStacks.pdf Checkpoint 4 ------------ .. avembed:: Exercises/MengBridgeCourse/StacksCheckpoint4Summ.html ka :long_name: Checkpoint 4 Programming Practice: LinkedStacks ---------------------------------- .. extrtoolembed:: 'Programming Practice: LinkedStacks' :workout_id: 1912