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

📅  最后修改于: 2021-09-08 13:38:25             🧑  作者: 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,函数f 返回 1 当且仅当 (GATE CS 2003)

(A)并非列表中的所有元素都具有相同的数据值。
(B)列表中的元素按数据值的非降序排列
(C)列表中的元素按数据值的非升序排列
(D)没有一个答案:(乙)
解释:
函数f() 的工作原理如下
1) 如果链表为空返回 1
2) Else 如果链表只有一个元素返回 1
3) 否则,如果 node->data 小于等于 node->next->data 并且同样的事情适用于列表的其余部分,则返回 1
4) 否则返回 0
这个问题的测验