What is the Time complexity of the insert function implemented in Part A. Explain your reasoning
//main.cpp
#include "linkedListType.h"
int main()
{
Node* head = NULL;
orderedLinkedList oll = orderedLinkedList(head);
oll.insert(40);
oll.insert(100);
oll.insert(50);
oll.printList();
oll.insert(50);
oll.printList();
return 0;
}
//linkedListType.h
#include <stdio.h>
#include <iostream>
using namespace std;
class Node
{
public:
int data;
Node* next;
};
class orderedLinkedList {
Node* head;
public:
orderedLinkedList(Node* h) {
head = h;
}
void insert(int new_data)
{
Node* head_ref = head;
while (head_ref != NULL && (head_ref->next != NULL) && (head_ref->next)->data < new_data)
{
cout << head_ref->data << "\n";
head_ref = head_ref->next;
}
if (head_ref != NULL && (head_ref->next != NULL) && (head_ref->next)->data == new_data)
{
cout << "ERROR: Item to be inserted is already in the list\n";
return;
}
/* Insert new node */
Node* new_node = new Node();
new_node->data = new_data;
if (head_ref != NULL) {
new_node->next = head_ref->next;
head_ref->next = new_node;
}
else {
new_node->next = NULL;
head = new_node;
}
}
void printList()
{
Node* node = head;
while (node != NULL)
{
cout << node->data << " ";
node = node->next;
}
cout << "\n";
}
};
What is the Time complexity of the insert function implemented in Part A. Explain your reasoning.
Step by step
Solved in 2 steps