c++判断顺序表是否有序的函数
时间: 2024-09-19 08:02:34 浏览: 56
使用C++实现顺序链表
在 C++ 中,判断一个顺序表(也称为线性表)是否有序通常涉及到遍历列表并比较元素。这里是一个简单的示例,假设我们有一个整数类型的顺序表:
```cpp
#include <iostream>
// 定义顺序表节点结构体
struct ListNode {
int value;
ListNode* next;
ListNode(int val) : value(val), next(nullptr) {}
};
// 判断顺序表是否升序排序的函数
bool isSorted(ListNode* head) {
if (head == nullptr || head->next == nullptr) { // 如果链表为空或只有一个元素,视为有序
return true;
}
ListNode* current = head->next; // 遍历链表
while (current != nullptr) {
if (head->value > current->value) { // 如果当前元素比前一个大,则表示未排序
return false;
}
head = current; // 移动到下一个元素
current = current->next;
}
return true; // 如果遍历结束都没有发现错误,说明是有序的
}
// 使用示例
int main() {
ListNode* list = new ListNode(1);
list->next = new ListNode(2);
list->next->next = new ListNode(3);
if (isSorted(list)) {
std::cout << "顺序表已排序。\n";
} else {
std::cout << "顺序表未排序。\n";
}
delete list; // 别忘了释放内存
return 0;
}
```
阅读全文