已知单链表结点数据结构如下,编写算法判断一个单链表中各结点的值是否由小到大排列。如果是,返回1,不是则返回0。 typedef struct Node { ElemType data; struct Node *next; } LinkNode,*LinkList;
时间: 2023-05-21 21:07:18 浏览: 161
数据结构 单链表
下面是判断单链表中各结点的值是否由小到大排列的算法,可以返回1或0:
int is_ordered(LinkList L) {
if (L == NULL || L->next == NULL) { // 空表或只有一个结点的情况
return 1;
}
LinkNode *p = L;
int min = p->data;
while (p != NULL) {
if (p->data < min) {
return 0;
}
min = p->data;
p = p->next;
}
return 1;
}
注意:该算法不能处理有相同值的结点的情况。如果要处理这种情况,可以在比较相邻两个结点的值时,使用 <= 而非 <。
阅读全文