Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C แสดงตัวเลขย้อนกลับด้วย Singly Linked List


คำอธิบาย

Singly Linked List มีโหนดที่เก็บข้อมูลและ Pointer ชี้ไปโหนดถัดไป (nextptr) เพื่อแสดงข้อมูลย้อนกลับ ต้องกลับทิศทางลิงก์ (Reverse the list)

โค้ดตัวอย่าง: กลับลำดับและแสดงผล

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

struct node {
    int num;
    struct node *nextptr;
} *stnode;

void createNodeList(int n);
void reverseDispList();
void displayList();

int main() {
    int n;
    printf("Single Linked List: Print in reverse order\n");
    printf("Input number of nodes: ");
    scanf("%d", &n);
    createNodeList(n);
    printf("Data entered: ");
    displayList();
    reverseDispList();
    printf("Reversed list: ");
    displayList();
    return 0;
}

void reverseDispList() {
    struct node *prevNode, *curNode;
    if (stnode != NULL) {
        prevNode = stnode;
        curNode = stnode->nextptr;
        stnode = stnode->nextptr;
        prevNode->nextptr = NULL;
        while (stnode != NULL) {
            stnode = stnode->nextptr;
            curNode->nextptr = prevNode;
            prevNode = curNode;
            curNode = stnode;
        }
        stnode = prevNode;
    }
}

// ฟังก์ชัน createNodeList และ displayList อยู่ในต้นฉบับ

ผลลัพธ์ตัวอย่าง

Input: 12 45 11 9 10
Original: 12 45 11 9 10
Reversed: 10 9 11 45 12