用C++编写一个程序,已知有序顺序表L,判断其是否递增有序
时间: 2024-09-25 07:15:50 浏览: 29
在C++中,你可以通过遍历顺序表并比较相邻元素来检查它是否递增有序。下面是一个简单的示例程序:
```cpp
#include <iostream>
// 定义一个结构体表示顺序表节点
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
bool isMonotonicIncreasing(ListNode* head) {
// 如果列表为空或只有一个元素,它是递增的
if (!head || !head->next) return true;
// 初始化两个指针,一个正常遍历,一个检查前一个元素是否小于当前
ListNode* current = head;
ListNode* prev = nullptr;
// 遍历列表
while (current != nullptr) {
// 检查当前元素是否大于等于前一个
if (prev && prev->val > current->val) {
// 如果发现不递增的情况,则返回false
return false;
}
// 更新指针
prev = current;
current = current->next;
}
// 如果所有元素都满足递增条件,返回true
return true;
}
int main() {
// 创建一个例子列表
ListNode* list = new ListNode(1);
list->next = new ListNode(2);
list->next->next = new ListNode(3);
list->next->next->next = new ListNode(4);
// 判断列表是否递增
bool result = isMonotonicIncreasing(list);
std::cout << "Is the list monotonic increasing? " << (result ? "Yes" : "No") << stdarray
阅读全文