MCQ On Linked List - Data Structure
21. Which of the following points is/are true about Linked List data structure when it is compared with array
22. Which of the following sorting algorithms can be used to sort a random linked list with minimum time complexity?
Explanation: Both Merge sort and Insertion sort can be used for linked lists. The slow random-access performance of a linked list makes other algorithms (such as quicksort) perform poorly, and others (such as heapsort) completely impossible. Since worst case time complexity of Merge Sort is O(nLogn) and Insertion sort is O(n2), merge sort is preferred.
23. Given pointer to a node X in a singly linked list. Only one pointer is given, pointer to head node is not given, can we delete the node X from given linked list?
Following are simple steps.
struct node *temp = X->next;
X->data = temp->data;
X->next = temp->next;
24. The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function.What should be added in place of "/*ADD A STATEMENT HERE*/", so that the function correctly reverses a linked list.
struct node* next;
static void reverse(struct node** head_ref)
struct node* prev = NULL;
struct node* current = *head_ref;
struct node* next;
while (current != NULL)
next = current->next;
current->next = prev;
current = next;
/*ADD A STATEMENT HERE*/
Explanation: *head_ref = prev; At the end of while loop, the prev pointer points to the last node of original linked list.
We need to change *head_ref so that the head pointer now starts pointing to the last node.
25. he following C function takes a single-linked list of integers as a parameter and rearranges the elements of the list.
The function is called with the list containing the integers 1, 2, 3, 4, 5, 6, 7 in the given order. What will be the contents of the list after the function completes execution?
struct node *next;
void rearrange(struct node *list)
struct node *p, * q;
if ((!list) || !list->next)
p = list;
q = list->next;
temp = p->value;
p->value = q->value;
q->value = temp;
p = q->next;
q = p?p->next:0;
Explanation: The function rearrange() exchanges data of every node with its next node. It starts exchanging data from the first node itself.
Also check :