wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Data Structures Prelimes

Total questions: 16

Worksheet time: 8mins

Name
Class
Date
1.

Which of the following sorting algorithms can be used to sort a random linked list with minimum time complexity?

a)

Insertion Sort

b)

Quick Sort

c)

Heap Sort

d)

Merge Sort

2.

What is the output of following function in which start is pointing to the first node of the following linked list 1->2->3->4->5->6 ?

void fun(struct node* start) {

if(start == NULL)

return;

printf("%d ", start->data);

if(start->next != NULL )

fun(start->next->next);

printf("%d ", start->data); }

a)

1 4 6 6 4 1

b)

1 3 5 1 3 5

c)

1 2 3 5

d)

1 3 5 5 3 1

3.

In the worst case, the number of comparisons needed to search a singly linked list of length n for a given element is (GATE CS 2002)

a)

log(2*n)

b)

n/2

c)

log(2*n) -1

d)

n

4.

Suppose each set is represented as a linked list with elements in arbitrary order. Which of the operations among union, intersection, membership, cardinality will be the slowest? (GATE CS 2004)

a)

union

b)

membership

c)

cardinality

d)

union, intersection

5.

What is the optimal time complexity to count the number of nodes in a linked list?

a)

O(n)

b)

O(1)

c)

O(log n)

d)

O(n log n)

6.

Which of the following algorithms is not feasible to implement in a linked list?

a)

Insertion Sort

b)

Quick Sort

c)

Heap Sort

d)

Binary Search

7.

What is the time complexity to insert an element to the front of a LinkedList(head pointer given)?

a)

O(n)

b)

O(1)

c)

O(log n)

d)

O(n log n)

8.

What is the time complexity of a program to reverse a linked list?

a)

O(n)

b)

O(1)

c)

O(log n)

d)

O(n log n)

9.

Which of the following problems can be solved using 2 pointers on linked list?

a)

Detecting cycle in a Linked List

b)

Finding intersection of two linked lists

c)

Finding middle of a linked lists

d)

None of the above

10.

Rotating a linked list by some places clockwise will take a time complexity of?

a)

O(n)

b)

O(1)

c)

O(log n)

d)

O(n log n)

11.

Which of the following operations is performed more efficiently by doubly linked list than by linear linked list? (ISRO CS 2001)

a)

Deleting a node whose location is given

b)

Searching an unsorted list for a given item

c)

Inserting a node after the node with a given location

d)

Traversing the list to process each node

12.

Consider a singly linked list of the form where F is a pointer to the first element in the linked list and L is the pointer to the last element in the list. The time of which of the following operations depends on the length of the list?

a)

Delete the last element of the list

b)

Delete the first element of the list

c)

Add an element after the last element of the list

d)

Interchange the first two elements of the list

13.

1.         What does the following function do for a given Linked List with first node as head?

 

void fun1(struct node* head)

{

  if(head == NULL)

    return;

 

  fun1(head->next);

  printf("%d  ", head->data);

}

a)

   Prints all nodes of linked lists

b)

Prints all nodes of linked list in reverse order

c)

Prints alternate nodes of Linked List

d)

   Prints alternate nodes in reverse order

14.

1.      Consider the following function that takes reference to head of a Doubly Linked List as parameter. Assume that a node of doubly linked list has previous pointer as prev and next pointer as next.

 

void fun(struct node **head_ref)

{

    struct node *temp = NULL;

    struct node current = head_ref;

 

    while (current !=  NULL)

    {

        temp = current->prev;

        current->prev = current->next;

        current->next = temp;

        current = current->prev;

    }

 

    if(temp != NULL )

        *head_ref = temp->prev;

}

Assume that reference of head of following doubly linked list is passed to above function 1 <--> 2 <--> 3 <--> 4 <--> 5 <-->6. What should be the modified linked list after the function call?

a)

2 <--> 1 <--> 4 <--> 3 <--> 6 <-->5

b)

5 <--> 4 <--> 3 <--> 2 <--> 1 <-->6.

c)

6 <--> 5 <--> 4 <--> 3 <--> 2 <--> 1

d)

6 <--> 5 <--> 4 <--> 3 <--> 1 <--> 2

15.

What will be the output of the following code snippet for 1->2->3->4->5?

 

void solve (ListNode* head) {

    while(head != NULL) {

                        cout << head -> data << " ";

                        head = head -> next;

            }

}

 

a)

1 2 3 4 5

b)

1 3 5 2 4

c)

2 4 1 3 5

d)

5 4 3 2 1   

 

16.

What does the following code snippet do?

 

void solve(ListNode* node) {

    node = node -> next;

}

a)

 

Deletes the given node form the linked list

b)

Alters nothing in main function

c)

Prints all nodes of linked list in reverse order

d)

Prints alternate nodes of Linked List