15
Linked Lists Linked Lists CSC 172 SPRING 2004 LECTURE 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

  • View
    215

  • Download
    2

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

}

}