Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB...
-
date post
21-Dec-2015 -
Category
Documents
-
view
215 -
download
2
Transcript of Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB...
![Page 1: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/1.jpg)
Linked ListsLinked Lists
CSC 172 SPRING 2004
LECTURE 6
![Page 2: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/2.jpg)
ANNOUNCEMENTSANNOUNCEMENTS
Project 2 due Wed, Feb 18th, 5PM, CSBRead Weiss Chapter 17
Department T shirts available $10
![Page 3: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/3.jpg)
Doubly Linked ListDoubly Linked List
Ex 4 : Write the “DoubleNode” class
![Page 4: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/4.jpg)
An empty Doubly Linked ListAn empty Doubly Linked List
How does this (the existence of head & tail) change traverse & print?
![Page 5: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/5.jpg)
DeletionDeletion
Ex 6: Write a method to delete from doubly linked list
assume comparable Objects public void delete(Comparable obj)
![Page 6: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/6.jpg)
public void delete (Comparable obj) {Node current = head;while (current != tail) {
if (obj.equals(current.data)) {(current.next).prev = current.prev;(current.prev).next = current.next;return;
}current = current.next;
} }
![Page 7: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/7.jpg)
InsertionInsertion
Ex 6: Write a method to insert from doubly linked list
public void insertAfter(Node n, Comparable obj)
![Page 8: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/8.jpg)
public void insertAfter(Node n, Object obj){
Node newNode = new DoubleNode();
newNode.data = obj;
newNode.prev = n;
newNode.next = n.next;
(newNode.prev).next = newNode;
(newNode.next).prev = newNode;
}
![Page 9: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/9.jpg)
A List IteratorA List Iterator
![Page 10: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/10.jpg)
Iterator FunctionalityIterator Functionality
![Page 11: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/11.jpg)
Iterator nextIterator nextpublic Object next() {
if (position == null){ position = first;return getFirst();
} else { if (position.next == null) throw new NoSuchElementException();previous = position; // remember for removeposition = position.next;return position.data;}
}
![Page 12: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/12.jpg)
Adding to middleAdding to middle
![Page 13: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/13.jpg)
Adding to middleAdding to middlepublic void add(Object obj){
if (position == null)addFirst(obj);
else { Link newLink = new Link();newLink.data = obj;newLink.next = position.next;position.next = newLink;position = newLink;previous = null;
}}
![Page 14: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/14.jpg)
Removing from middleRemoving from middle
![Page 15: Linked Lists CSC 172 SPRING 2004 LECTURE 6. ANNOUNCEMENTS Project 2 due Wed, Feb 18 th, 5PM, CSB Read Weiss Chapter 17 Department T shirts available $10.](https://reader034.fdocuments.us/reader034/viewer/2022042821/56649d575503460f94a3562e/html5/thumbnails/15.jpg)
Removing from middleRemoving from middlepublic void remove(){
if (position == first) removeFirst();
else{
if (previous == null)
throw new IllegalStateException();
previous.next = position.next;
position = previous;
}
previous = null;
}
}