以下是用C语言实现判断一个单链表中各个结点值是否有序的代码,包含输入和输出:

#include <stdio.h>
#include <stdlib.h>

// 定义单链表结构体
typedef struct Node {
    int data;
    struct Node *next;
} Node, *LinkedList;

// 创建单链表
LinkedList createLinkedList(int arr[], int n) {
    LinkedList head = (LinkedList)malloc(sizeof(Node));
    head->next = NULL;
    Node *p;
    for (int i = 0; i < n; i++) {
        p = (Node *)malloc(sizeof(Node));
        p->data = arr[i];
        p->next = head->next;
        head->next = p;
    }
    return head;
}

// 判断单链表是否有序
int isLinkedListSorted(LinkedList head) {
    Node *p = head->next;
    if (p == NULL || p->next == NULL) {
        return 1;
    }
    int flag = 1;
    while (p->next != NULL) {
        if (p->data > p->next->data) {
            flag = 0;
            break;
        }
        p = p->next;
    }
    return flag;
}

// 输出单链表
void printLinkedList(LinkedList head) {
    Node *p = head->next;
    while (p != NULL) {
        printf("%d ", p->data);
        p = p->next;
    }
    printf("\n");
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    LinkedList head = createLinkedList(arr, n);
    printf("原始单链表:");
    printLinkedList(head);
    if (isLinkedListSorted(head)) {
        printf("单链表有序\n");
    } else {
        printf("单链表无序\n");
    }
    return 0;
}

运行结果:

原始单链表:5 4 3 2 1 
单链表无序
``
用c语言完成一段代码 要求有输入和输出 判断一个单链表中各个结点值是否有序

原文地址: http://www.cveoy.top/t/topic/fblN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录