This section contains carefully selected MCQs and Previous Year Questions with explanations to help students understand concepts and prepare effectively for examinations, interviews, and competitive tests.
Q: 1Which of the following statements is not true about the doubly linked list?
Option C
A doubly linked list is a linked list where each node contains three parts:
We can traverse in both the directions. This is true. Because each node has a prev pointer, we can move forward and backward.
It requires extra space. This is true. Every node stores an additional pointer (prev), so space required is more than a singly linked list.
Implementation of doubly linked list is easier than the singly linked list. This statement is not true. A doubly linked list is more difficult to implement because you must maintain both next and prev pointers during insertion and deletion. Singly linked list is simpler.
Q: 2The worst-case time required to search a given element in a sorted singly linked list of length ‘n’ is ____________.
Option C
In a singly linked list, elements are accessed sequentially, meaning we cannot directly jump to the middle element like in arrays. Even if the list is sorted, we must traverse nodes one by one.
In the worst case, the desired element may be at the last node or not present at all, requiring traversal of all n nodes, resulting in O(n) time complexity.
Q: 3What is the minimum number of fields in a node of a double linked list which can store one integer data
Option C
A Doubly Linked List is a type of linked list in which each node is connected in both directions. Unlike a singly linked list which has only a next pointer, each node in a doubly linked list contains a pointer to the previous node as well as the next node.
This allows traversal in both forward and backward directions, making operations like insertion and deletion more flexible.
Each node in a doubly linked list must contain:
So, the minimum number of fields required is 3.
struct node
{
int info;
struct node *prev;
struct node *next;
};
Q: 4In a circular linked list organisation, insertion of an item in the list involves update of
Option C
A Circular Linked List is a type of linked list in which the last node does not point to NULL, instead, it points back to the first node. This creates a circular structure.
Because of this circular connection, any insertion operation must maintain the continuity of the loop.
When a new node is inserted, the links between nodes must be adjusted carefully. In general, insertion involves the following steps:
Thus, two pointer updates are always required to correctly insert a node while preserving the circular structure.
Q: 5What does the following function do for a given Linked List with first node as start?
void myFun(struct node* start)
{
if(start==NULL)
return;
myFun(start->link);
printf("%d ", start->info);
}
Option A
The given function uses recursion to traverse the linked list. When myFun(start) is called, it first checks whether start is NULL. If not, it makes a recursive call on start->link, moving forward to the next node. This continues until the function reaches the last node of the linked list.
Only after all recursive calls return, the printf statement is executed. As a result, the data of the last node is printed first, followed by the second last, and so on, until the first node is printed at the end. Thus, all nodes are printed, but in reverse order.
Q: 6Which of the following is called a self-referential structure?
Option A
A self-referential structure in C is a structure that contains a pointer to a variable of the same structure type. This allows the structure to reference another instance of itself.
A linked list is the most common example of this concept, where each node contains:
In C, a self-referential structure is defined like:
struct node
{
int info;
struct node *link;
};
Here, link is a pointer to another struct node, making it self-referential.
Q: 7A circularly linked list is used to represent a Queue. A single variable P is used to access the Queue. To which node should p point such that both the operations enQueue and deQueue can be performed in constant time?

Option B
When a queue is implemented using a circularly linked list and only one pointer P is used, that pointer should point to the rear (last) node of the queue. In a circular linked list, the next pointer of the rear node points to the front node.
Q: 8What is the output of following function for start pointing to first node of following linked list?
1->2->3->4->5->6
void myFun(struct node* start)
{
if(start==NULL)
return;
printf("%d ", start->info);
if(start->link!=NULL)
myFun(start->link->link);
printf("%d ", start->info);
}
Option D
Q: 9What is the time complexity of inserting an element at the beginning of a linked list?
Option D
In a linked list, each node contains data (info) and a pointer to the next node (link). When inserting a new element at the beginning of the list, we simply create a new node, set its link to point to the current first node, and then update the head (start) pointer to this new node.
These operations take a constant amount of time because there is no need to traverse the list or move any existing elements. Therefore, the time complexity of inserting an element at the beginning of a linked list is O(1), which means it executes in constant time regardless of the size of the list.
Q: 10If a queue is implemented with a linked list with two pointers front and rear, what will be the time complexity to insert an element?
Option D
In a queue implemented using a linked list with two pointers (front and rear), insertion (enqueue operation) is performed at the rear end.
Since we already have a direct pointer to the rear, we do not need to traverse the list. We simply:
All these steps take constant time, regardless of the number of elements in the queue. So, Time complexity is O(1).
Q: 11In linked list an element can be inserted ______________.
Option D
A Linked List is a dynamic data structure where each element (node) contains data and a pointer to the next node.
Unlike arrays, linked lists do not require contiguous memory, so elements can be easily inserted or deleted without shifting other elements.
Because of this flexibility, a new node can be inserted at the beginning, at the end, or at any position by simply updating the pointers. This makes linked lists very efficient for insertion operations.
Q: 12A linked list (without header node) contains 3 nodes. The nodes are self-referential structures having a node pointer (name Link) apart from the information. Let START is pointer to the first node and END is pointer to the last node of the linked list. If the following C statements are executed in order, what will happen?
(X is a pointer of node type)
X=START->Link;
START->Link = X->Link;
free(X);
Option D
In this,
Q: 13Identify the incorrect statement related to singly linked list.
Option D
A singly linked list is a linear data structure where each element (node) contains two parts, info (contain actual data) and a pointer to the next node. Unlike arrays, linked list elements are stored non-contiguously in memory and are connected using pointers.
Q: 14Which of the following is true about linked list implementation of stack?
Option D
In a linked list implementation of a stack, both push and pop operations must be performed at the same end of the list in order to follow the LIFO (Last In, First Out) principle.

Q: 15What is the value of the ((Start → Next) → Next) → Info in the given list?

Option C
The given figure represents a linked list. In a linked list:
| Expression | Reached Node | Value |
|---|---|---|
| Start | First Node. | 125 |
| Start → Next | Second Node. | 140 |
| (Start → Next) → Next | Third Node. | 128 |
| ((Start → Next) → Next) → Info | Info field of Third Node. | 128 |
Therefore, the value of the expression is 128.
You have reached the end of this topic. Continue learning with the next topic below.
Thank you so much for taking the time to read my Computer Science MCQs section carefully. Your support and interest mean a lot, and I truly appreciate you being part of this journey. Stay connected for more insights and updates! If you'd like to explore more tutorials and insights, check out my YouTube channel.
Don’t forget to subscribe and stay connected for future updates.