Here are the class definitions of Node and List that implement a linked list. cl
ID: 3880319 • Letter: H
Question
Here are the class definitions of Node and List that implement a linked list.
class Node {
private Node next;
private int key;
Node(Node nxt, int keyValue); // constructor
Node getNext();
int getKey();
void putNext(Node nxt);
}
class List { // assume the class does not use a dummy Node
private Node head;
List(); // constructor
boolean exists(int ky); // returns true if ky is in the list
void insertAtHead(int ky); // inserts at the beginning of the list
void insertAtTail(int ky); // inserts at the end of the list
int removeFromHead(); // Returns -1 if the list is empty
void delete(int ky); // delete the element or do nothing if ky doesn’t exist
int removeSmallest(); // removes the Node containing the smallest key
// and returns that key. Returns -1 if the list is empty.
// Could be duplicate entries, so remove the first
int removeLargest(); // removes the Node containing the largest key
// and returns that key. Returns -1 if the list is empty.
// Could be duplicate entries, so remove the first
int maxElement(); // calls the private version, doesn’t delete the Node
int sum(); // calls the private version
int length(); // calls the private version
private int maxElement(Node x);
private int sum(Node x);
private int length(Node x);
}
**A linked list as defined above holds N nodes. What is the runtime in ”Big O” notation of an algorithm
that searches the list for a given key when:
(a) The list elements are arbitrarily ordered
(b) The list elements are arranged in increasing order
Explanation / Answer
a. The list elements are arbitrarily ordered:
In such case, the element can be at any place in the list, it can be at the first position, in the middle or at the last position. Suppose there are n elements in the list, then the runtime in Big O notation will be
T(n) = O(log n)
b. The list elements are arranged in increasing order:
In such case, even if the list is sorted the element that we want to find can be at any place in the list, it can be at the first position, in the middle or at the last position. Suppose there are n elements in the list, then the runtime in Big O notation will be
T(n) = O(log n)
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.