Data Structures | Linked List | Question 11

Consider the function f defined below.

filter_none

edit
close

play_arrow

link
brightness_4
code

struct item 
  int data; 
  struct item * next; 
}; 
  
int f(struct item *p) 
  return (
          (p == NULL) || 
          (p->next == NULL) || 
          (( P->data <= p->next->data) && f(p->next))
         ); 

chevron_right


For a given linked list p, the function f returns 1 if and only if (GATE CS 2003)

(A) not all elements in the list have the same data value.
(B) the elements in the list are sorted in non-decreasing order of data value
(C) the elements in the list are sorted in non-increasing order of data value
(D) None of them


Answer: (B)

Explanation:
The function f() works as follows
1) If linked list is empty return 1
2) Else If linked list has only one element return 1
3) Else if node->data is smaller than equal to node->next->data and same thing holds for rest of the list then return 1
4) Else return 0

Quiz of this Question

My Personal Notes arrow_drop_up