Download linked list implementations, iterators

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CS 171: Introduction to Computer
Science II
Linked List
Li Xiong
Roadmap
• Linked List
–Concept
–Traverse, search, insert, delete
–Delete a given item
–Linked list, double-ended list, doubly linked list
• Re-implementing Stacks and Queues using Linked
List
• Iterators
Linked List
Remove a given item
• Example: remove “be” from the
linked list
• Search the item, then remove
for (Node x = first; x != null; x = x.next) {
if x.item.equals(“be”)
// how to remove x?
}
Remove a given item
• Example: remove “be” from the linked list
• Search the item, then remove
• Keep a reference to the previous and
current element
Node current = first;
Node previous = first;
while (current != null && !current.item.equals(“be”)){
previous = current;
current = current.next;
}
// remove current
previous.next = current.next;
// What if the item is the first node?
// What if the item does not exist?
Remove a given item
• Example: remove “be” from the linked list
• Search the item, then remove it
• Keep a reference to the previous and
current element
• Need to consider the cases when item is
the first and when item does not exist
Node current = first;
Node previous = first;
while (current != null && !current.item.equals(“be”)){
previous = current;
current = current.next;
}
// remove current
if (current == first)
first = first.next;
else if (current != null)
previous.next = current.next;
Roadmap
• Linked List
–Concept
–Traverse, search, insert, delete
–Delete a given item
–Linked list, double-ended list, doubly linked list
• Re-implementing Stacks and Queues using Linked
List
• Iterators
Linked list stack implementation performance
• Every operation takes constant time
• No array resizing cost
Roadmap
• Linked List
–Concept
–Traverse, search, insert, delete
–Delete a given item
–Linked list, double-ended list, doubly linked list
• Re-implementing Stacks and Queues using Linked
List
• Iterators
Interface
• An interface in Java is an abstract type that specifies an
interface that classes must implement
• May only contain method signature and constant
declarations, no method definitions
• A class that implements an interface must implement
all of the methods described in the interface, or be an
abstract class
• Simulate multiple inheritance.
–All classes in Java must have exactly one base class (except
Object); multiple inheritance of classes is not allowed.
–A class may implement any number of interfaces
Java Queues and Deques
• java.util.Queue is an interface and has multiple
implementing classes
– insert() and remove()
• java.util.Deque is an interface and has multiple
implementing classes
– Supports insertion and removal at both ends
– addFirst(), removeFirst(), addLast(), removeLast()
Java ArrayDeque class
• java.util.ArrayDeque implements Deque interface
and supports both stack and queue operations
• Queue methods
–add(), addLast()
–remove(), removeFirst()
–peek(), peekFirst()
• Stack methods
– push(), addFirst()
– pop(), removeFirst()
– peek(), peekFirst()