CC Lab
หลักสูตรการเขียนโปรแกรมภาษา C
ความคืบหน้าเก็บไว้ในเบราว์เซอร์นี้โหมดผู้เรียน
บทเรียน / ลิงก์ลิสต์ / 01

ข้อจำกัดของ array ขนาดคงที่

เปรียบเทียบข้อจำกัดของ array ขนาดคงที่กับการเชื่อม node ด้วย pointer ได้

แนวคิดและการทดลองประมาณ 15 นาที
บทที่ 1 จาก 10
แนวคิดหลัก

array ต้องมีพื้นที่ต่อเนื่องและขนาดที่กำหนดไว้ การแทรกสมาชิกกลาง array อาจต้องเลื่อนข้อมูลหลายตัว linked list เก็บ node แยกกันและเชื่อมด้วย next จึงเพิ่มหรือลบ node ได้โดยปรับ pointer

ลงมือสำรวจ

เปลี่ยนค่าและสังเกตผล
Linked List Visualizer
→
→
→ NULL
พบ 20 ที่ node 1
pointer ปัจจุบัน: head

อ่านโค้ดตัวอย่าง

#include <stdio.h>
typedef struct Node { int value; struct Node *next; } Node;
int main(void) {
    Node c = {30, NULL};
    Node b = {20, &c};
    Node a = {10, &b};
    for (Node *p = &a; p != NULL; p = p->next)
        printf("%d\n", p->value);
    return 0;
}

ทำนายผลก่อนทดลอง

Prediction

next ของ node ตัวสุดท้ายควรเป็นค่าใด?

main.c · สร้าง node 3 ตัวแล้ววนแสดงค่าจาก head จนถึง NULL
กำลังโหลดตัวแก้ไขโค้ด…

บันทึกโค้ดไว้ใน localStorage ของเบราว์เซอร์นี้ หากเปิดใช้งานการรัน โค้ดและ stdin จะถูกส่งไปยัง Wandbox

จบบทเรียน

กลับไปยังโมดูลบทถัดไป