stack implementations chapter 6 copyright ©2012 by pearson education, inc. all rights reserved

24
Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Upload: marilynn-davidson

Post on 18-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Stack Implementations

Chapter 6

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 2: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Contents

• A Linked Implementation

• An Array-Based Implementation

• A Vector-Based Implementation Java Class Library: The Class Vector Using a Vector to Implement the ADT Stack

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 3: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Objectives

• Implement ADT stack by using either Linked chain Array Vector

• Compare and contrast various implementations and their performance

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 4: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Linked Implementation

• Consider push, pop, peek Each involves top of stack

• Best to put top of stack at head node Fastest, easiest to access

• Java will manage reclaiming memory without instruction from programmer

• Note source code for linked implementation Listing 6-1

Note: Code listing filesmust be in same folder

as PowerPoint filesfor links to work

Note: Code listing filesmust be in same folder

as PowerPoint filesfor links to work

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 5: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-1 A chain of linked nodes that implements a stack

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 6: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

FIGURE 6-2 (a) A new node that references the node at the top of the stack; (b) the new node is now at the top of the stack

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 7: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Linked Implementation

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 8: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-3 The stack (a) before the first node in the chain is deleted

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 9: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-3 The stack (b) after the first node in the chain is deleted

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 10: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Array Based Implementation

• Again the question: Were to place the top entry?

• More efficient operations with bottom of stack at beginning of array Top of stack at last occupied entry

• Must consider memory wastage of unused array elements

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 11: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-4 An array that implements a stack; its first location references (a) the top entry in the stack;

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 12: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-4 An array that implements a stack; its first location references (b) the bottom entry in the stack;

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 13: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Adding to the Top

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 14: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Retrieving the Top

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 15: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-5 An array-based stack after its top entry is removed by(a) decrementing topIndex;

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 16: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-5 An array-based stack after its top entry is removed by(b) setting stack[topIndex] to null and

then decrementing topIndex

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 17: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Method Pop

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 18: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Vector-Based Implementation

• Vector is a structure which behaves like a high level array Has methods to access entries Grows in size as needed (hidden from client)

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 19: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Figure 6-6 A client using the methods given in StackInterface; these methods interact with a vector’s methods

to perform stack operations

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 20: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Constructors and Methods of Vector

• public Vector()• public Vector(int initialCapacity)• public boolean add(T newEntry)• public T remove(int index)• public void clear()• public T lastElement()• public boolean isEmpty()• public int size()

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 21: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Using a Vector to Implement ADT Stack

• Similar to using an array But easier

• First element is bottom of stack

• Vector adjusts size automatically Our stack implementation need not deal with

adjusting size

• View outline, Listing 6-3

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 22: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Stack Methods for Vector Implementation

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 23: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

Should VectorStack Extend Vector?

• If we use inheritance It would have available all methods of Vector Would allow access to any element This violates premise of ADT Stack

• Design decision Do NOT use inheritance

Copyright ©2012 by Pearson Education, Inc. All rights reserved

Page 24: Stack Implementations Chapter 6 Copyright ©2012 by Pearson Education, Inc. All rights reserved

End

Chapter 6

Copyright ©2012 by Pearson Education, Inc. All rights reserved