Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stack Implementations Chapter 21. 2 Chapter Contents A Linked Implementation An Array-Based Implementation A Vector-Based Implementation.

Similar presentations


Presentation on theme: "Stack Implementations Chapter 21. 2 Chapter Contents A Linked Implementation An Array-Based Implementation A Vector-Based Implementation."— Presentation transcript:

1 Stack Implementations Chapter 21

2 2 Chapter Contents A Linked Implementation An Array-Based Implementation A Vector-Based Implementation

3 3 A Linked Implementation When using a chain of linked nodes to implement a stack The first node should reference the stack's top Fig. 21-1 A chain of linked nodes that implements a stack.

4 4 A Linked Implementation Data field and constructor Each node an instance of class Node public class LinkedStack implements StackInterface, java.io.Serializable {private Node topNode; // references first node in chain public LinkedStack() {topNode = null; } // end default constructor... private class Node implements java.io.Serializable {private Object data; // entry in stack private Node next; // link to next node... } // end Node

5 5 A Linked Implementation Fig. 21-2 (a) A new node that references the top of the stack; (b) the new node is now at the top of the stack.

6 6 A Linked Implementation Fig. 21-3 The stack after the first node in the chain is deleted.

7 7 An Array-Based Implementation When using an array to implement a stack The array's first element should represent the bottom of the stack The last occupied location in the array represents the stack's top This avoids shifting of elements of the array if it were done the other way around

8 8 An Array-Based Implementation Fig. 21-4 An array that implements a stack; its first location references (a) the top of the stack; (b) the bottom of the stack

9 9 An Array-Based Implementation Data fields and constructors public class ArrayStack implements StackInterface, java.io.Serializable {private Object [] stack; // array of stack entries private int topIndex; // index of top entry private static final int DEFAULT_MAX_SIZE = 50; public ArrayStack() {stack = new Object[DEFAULT_MAX_SIZE]; topIndex = -1; } // end default constructor public ArrayStack(int maxSize) {stack = new Object[maxSize]; topIndex = -1; } // end constructor...

10 10 An Array-Based Implementation Fig. 21-5 Another array-based stack after top removed by (a) decrementing topIndex ; (b) setting stack[topIndex]=null and then decrementing topIndex

11 11 A Vector-Based Implementation When using a vector to implement a stack Vector's first element should represent the bottom of the stack Last occupied location in the vector represents the stack's top Based on an array that can be expanded dynamically Performance similar to array-based implementation

12 12 A Vector-Based Implementation Data fields and constructors import java.util.Vector; public class VectorStack implements StackInterface, java.io.Serializable {public VectorStack() {stack = new Vector(); // vector doubles in size if necessary } // end default constructor public VectorStack(int maxSize) {stack = new Vector(maxSize); } // end constructor...


Download ppt "Stack Implementations Chapter 21. 2 Chapter Contents A Linked Implementation An Array-Based Implementation A Vector-Based Implementation."

Similar presentations


Ads by Google