Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote