📜  数据结构|链表|问题11

📅  最后修改于: 2021-06-29 00:21:53             🧑  作者: Mango

考虑下面定义的函数f。

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))
         ); 
} 

对于给定的链表p,当且仅当(GATE CS 2003),函数f返回1。

(A)列表中并非所有元素都具有相同的数据值。
(B)列表中的元素按数据值的非降序排序
(C)列表中的元素以数据值的非递增顺序排序
(D)没有一个答案: (B)
解释:
函数f()的工作方式如下
1)如果链表为空则返回1
2)否则,如果链表只有一个元素,则返回1
3)否则,如果node-> data小于等于node-> next-> data,并且其余列表相同,则返回1
4)其他返回0
这个问题的测验