Download presentation

Presentation is loading. Please wait.

Published byNya Bridgeford Modified over 3 years ago

1
Lists1 © 2010 Goodrich, Tamassia

2
Position ADT The Position ADT models the notion of place within a data structure where a single object is stored It gives a unified view of diverse ways of storing data, such as a cell of an array a node of a linked list Just one method: object element(): returns the element stored at the position © 2010 Goodrich, Tamassia2Lists

3
Node List ADT The Node List ADT models a sequence of positions storing arbitrary objects It establishes a before/after relation between positions Generic methods: size(), isEmpty() Accessor methods: first(), last() prev(p), next(p) Update methods: set(p, e) addBefore(p, e), addAfter(p, e), addFirst(e), addLast(e) remove(p) © 2010 Goodrich, Tamassia3Lists

4
4 Doubly Linked List A doubly linked list provides a natural implementation of the Node List ADT Nodes implement Position and store: element link to the previous node link to the next node Special trailer and header nodes prevnext elem trailer header nodes/positions elements node © 2010 Goodrich, Tamassia

5
Lists5 Insertion We visualize operation insertAfter(p, X), which returns position q ABXC ABC p ABC p X q pq © 2010 Goodrich, Tamassia

6
Lists6 Insertion Algorithm Algorithm addAfter(p,e): Create a new node v v.setElement(e) v.setPrev(p){link v to its predecessor} v.setNext(p.getNext()){link v to its successor} (p.getNext()).setPrev(v){link ps old successor to v} p.setNext(v){link p to its new successor, v} return v{the position for the element e} © 2010 Goodrich, Tamassia

7
Lists7 Deletion We visualize remove(p), where p = last() ABCD p ABC D p ABC © 2010 Goodrich, Tamassia

8
Lists8 Deletion Algorithm Algorithm remove(p): t = p.element{a temporary variable to hold the return value} (p.getPrev()).setNext(p.getNext()){linking out p} (p.getNext()).setPrev(p.getPrev()) p.setPrev(null){invalidating the position p} p.setNext(null) return t © 2010 Goodrich, Tamassia

9
Performance In the implementation of the List ADT by means of a doubly linked list The space used by a list with n elements is O(n) The space used by each position of the list is O(1) All the operations of the List ADT run in O(1) time Operation element() of the Position ADT runs in O(1) time © 2010 Goodrich, Tamassia9Lists

Similar presentations

OK

© 2004 Goodrich, Tamassia Linked Lists1. © 2004 Goodrich, Tamassia Linked Lists2 Arrays: pluses and minuses + Fast element access. -- Impossible to resize.

© 2004 Goodrich, Tamassia Linked Lists1. © 2004 Goodrich, Tamassia Linked Lists2 Arrays: pluses and minuses + Fast element access. -- Impossible to resize.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Hrm ppt on recruitment agencies Ppt on job evaluation systems Ppt on walt disney concert hall Ppt on national education day of bangladesh Ppt on use of maths in our daily life Ppt on immunization schedule Ppt on food of different states of india Ppt on statistics in maths what is the range Ppt on object oriented programming with c++ book Ppt on national education policy 1986 mets