Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vectors, Lists, and Sequences - Ed. 2 and 3.: Chapter 5 - Ed. 4: Chapter 6.

Similar presentations


Presentation on theme: "Vectors, Lists, and Sequences - Ed. 2 and 3.: Chapter 5 - Ed. 4: Chapter 6."— Presentation transcript:

1 Vectors, Lists, and Sequences - Ed. 2 and 3.: Chapter 5 - Ed. 4: Chapter 6

2 Vectors, Lists, and Sequences (Chapter 5) Vectors -Vector ADT and implementation Lists -List ADT and implementation Sequences -Sequence ADT and implementation Iterators

3 Vectors

4

5

6

7

8

9 The Vector Abstract Data Type

10

11 Realization of a Deque with a Vector

12 A Simple Array-Based Implementation Vector ADT rank Array index

13 A Simple Array-Based Implementation

14

15

16 The Running Times of Vector Methods insertAtRank(r,e) and removeAtRank(r): Running time is proportional to n, the size of the vector. running time = O(n).

17 Java Implementation public interface Vector { public int size(); public boolean isEmpty(); public Object elemAtRank(int r); public Object replaceAtRank(int r, Object e); public void insertAtRank(int r, Object e); public Object removeAtRank(int r); }

18 class InvalidRankException extends Exception { public InvalidPositionException() {super();} public InvalidPositionException(String s) { super(s);} } class EmptyContainerExeption extends Exception { public EmptyContainerExeption() {super();} public EmptyContainerExeption(String s) { super(s);} } class BoundaryViolationExeption extends Exception { public BoundaryViolationExeption() {super();} public BoundaryViolationExeption(String s) { super(s);} }

19 Java Implementation public class ArrayVector implements Vector { private Object[] A; // array storing the elements of the vector private int capacity = 16; // initial length of array A private int size = 0; // number of elements stored in the vector /** Creates the vector with initial capacity 16. */ public ArrayVector() { A = new Object[capacity]; }

20 public Object elemAtRank(int r) throws BoundaryViolationException { checkRank(r, size()); return a[r]; } public int size() {return size;} public boolean isEmpty {return size()==0;}

21 /** Inserts an element at the given rank. */ public void insertAtRank(int r, Object e) throws BoundaryViolationException { checkRank(r, size() + 1); if (size == capacity) {// an overflow capacity *= 2; Object[] B = new Object[capacity]; for (int i=0; i<size; i++) B[i] = A[i]; A = B;} for (int i=size-1; i>=r; i--)// shift elements up A[i+1] = A[i]; A[r] = e; size++; }

22 /** Removes the element stored at the given rank. */ public Object removeAtRank(int r) throws BoundaryViolationException { checkRank(r, size()); Object temp = A[r]; for (int i=r; i<size-1; i++) // shift elements down A[i] = A[i+1]; size--; return temp; }

23 public Object replaceAtRank(int r, Object e) throws BoundaryViolationException { checkRank(r, size()); Object temp = A[r]; A[r] = e; return temp; } public void checkRank(int r, int s) throws BoundaryViolationException { if (0 > r) || (r > s) throw new BoundaryViolationException; }

24 Data Structure Exercises 7.2


Download ppt "Vectors, Lists, and Sequences - Ed. 2 and 3.: Chapter 5 - Ed. 4: Chapter 6."

Similar presentations


Ads by Google