GATE CSE
First time here? Checkout the FAQ!
x
+1 vote
115 views
p=head;
q=head-> next;
while(A)
{
     .......................................
}


A is the condition to see list is empty or not, which one is valid?

a) p!=NULL;

b) q!=NULL;

c)(p!=NULL)&&(q!=NULL)

d)(p!=NULL)||(q!=NULL)

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

a) p!=NULL;

b) q!=NULL;

c)(p!=NULL)&&(q!=NULL)

d)(p!=NULL)||(q!=NULL)

asked in Programming by Veteran (53.8k points)  
edited by | 115 views
Added the last part. Say what will be answer now and why?
Should be option B
how, explain in detail

Option B is correct.

If q!=Null then p is definitely not equal to Null.

The code must not enter the body of while loop if q=Null, this is because,

Observe this statement,

p = (p->next)? (p->next->next) : (p->next);

if at all p=Null then the condition (p->next) gives segmentation fault as it tries to access the next of Null.

@shreya here p moves one by one, while q moves two at a time whenever q is not pointing to last node... so if list will end q can detect it easily [q!=NULL] but the above code will work only if list has atleast one element..consider empty list... then p-> head [which is null for empty list] and q = head->next ..so now while loop condition should give runtime error as q is saying to point next of NULL.

1 Answer

0 votes
List is empty means there would not be any node in the list. Means the pointer "head" should point to Null.

'q' will be considered if there exist atleast a single node. So all other three option will be eliminated.(As question is talking about empty list.)

Option A is correct.
answered by (37 points)  


Top Users May 2017
  1. akash.dinkar12

    3166 Points

  2. pawan kumarln

    1648 Points

  3. sh!va

    1600 Points

  4. Arjun

    1380 Points

  5. Bikram

    1372 Points

  6. Devshree Dubey

    1272 Points

  7. Debashish Deka

    1132 Points

  8. Angkit

    1044 Points

  9. LeenSharma

    900 Points

  10. srestha

    714 Points

Monthly Topper: Rs. 500 gift card
Top Users 2017 May 22 - 28
  1. Bikram

    458 Points

  2. pawan kumarln

    274 Points

  3. Ahwan

    236 Points

  4. Arnab Bhadra

    234 Points

  5. bharti

    190 Points


22,778 questions
29,106 answers
65,165 comments
27,647 users