เมื่อเราเรียนเกี่ยวกับการเขียนโปรแกรม เราเรียนรู้เกี่ยวกับการจัดเก็บข้อมูลโดยใช้โครงสร้างข้อมูล โครงสร้างข้อมูลพื้นฐานประการหนึ่งคืออาร์เรย์ (หรือรายการ)

[ ]

[0,1,2,3,4,5]

เป็นที่เก็บข้อมูลในรูปแบบเชิงเส้น การจัดเก็บข้อมูลดังกล่าวในอาเรย์นั้นตรงไปตรงมา คุณเพียงแค่ต้องการพื้นที่หน่วยความจำสำหรับข้อมูล และคุณกำหนดพื้นที่หน่วยความจำตามลำดับสำหรับข้อมูลถัดไป คุณสามารถคิดว่าข้อมูลเป็นบุคคลและพื้นที่หน่วยความจำอาเรย์เป็นเก้าอี้ในไฟล์เดียว เก้าอี้แต่ละตัวได้รับการจัดทำดัชนี (เช่น 1,2,3…)

เพื่อให้ผู้ใช้สามารถเลือกข้อมูลใด ๆ ในรายการได้ โปรแกรมสามารถไปที่ข้อมูลนั้นได้อย่างมีประสิทธิภาพมากขึ้น เนื่องจากโปรแกรมรู้ว่าข้อมูลนั้นถูกจัดเก็บไว้ในที่อยู่หน่วยความจำตามลำดับ ความสามารถในการกำหนดข้อมูลแบบสุ่มจากรายการเรียกว่าการเข้าถึงแบบสุ่ม อย่างไรก็ตาม หากข้อมูลในรายการมีขนาดใหญ่เกินไป PL ต้องหาพื้นที่หน่วยความจำที่ใหญ่กว่าเพื่อกำหนดรายการ หรือก็คือการหาพื้นที่ที่ใหญ่พอที่จะวางเก้าอี้ไว้ในไฟล์เดียว

เพื่อขจัดปัญหานี้ เราใช้รายการที่เชื่อมโยงเพื่อขจัดข้อจำกัดในการจัดเก็บข้อมูลไว้ในที่อยู่หน่วยความจำตามลำดับ อย่างไรก็ตาม ขณะนี้ข้อมูลไม่ได้ถูกจัดเก็บไว้ในที่อยู่หน่วยความจำตามลำดับอีกต่อไป เราต้องเชื่อมโยงข้อมูลโดยใช้พอยน์เตอร์ เช่นเดียวกับชื่อ ตัวชี้มีทิศทางและใช้เป็นข้อมูลอ้างอิงสำหรับโปรแกรมเพื่อตรวจจับข้อมูลถัดไปจากตำแหน่งปัจจุบัน ข้อมูลแรกเรียกว่าโหนดหลักและตรวจพบเมื่อข้อมูลไม่มีชี้ไปทางนั้น ดังนั้นเราจึงมีการอ้างอิงเพื่อเริ่มต้น

กลับไปที่เก้าอี้และการเปรียบเทียบบุคคล ตอนนี้สามารถวางเก้าอี้ได้ทุกที่ในห้อง แต่ละคนเพียงแค่ต้องรู้ตำแหน่งของบุคคลถัดไปโดยการชี้ไปที่พวกเขา (ตัวชี้) คนแรกจะถูกชี้โดยบุคคลที่เราสามารถเรียกเขาว่านายไม่มี ในการเขียนโปรแกรม เราจำเป็นต้องสร้างพื้นที่เพิ่มเติมสำหรับตัวชี้ และการเข้าถึงข้อมูลสุ่มใดๆ ในรายการที่เชื่อมโยงจะต้องเริ่มต้นจากบุคคลที่หนึ่งเสมอ ดังนั้นการนำ Linked List ไปใช้จึงมีความก้าวหน้ากว่ารายการธรรมดาเล็กน้อย แต่ยังช่วยให้สามารถจัดสรรหน่วยความจำได้ดีขึ้นอีกด้วย

การจัดสรรหน่วยความจำแตกต่างจากที่เก็บข้อมูลหน่วยความจำ อาร์เรย์ต้องการพื้นที่จัดเก็บหน่วยความจำน้อยกว่า แต่มีการจัดสรรหน่วยความจำที่ไม่ยืดหยุ่น เนื่องจากข้อมูลจำเป็นต้องจัดเก็บไว้ในที่อยู่หน่วยความจำตามลำดับ รายการที่เชื่อมโยงต้องการพื้นที่จัดเก็บหน่วยความจำมากขึ้น เนื่องจากมีตัวชี้เพิ่มเติมสำหรับแต่ละข้อมูล แต่มีการจัดสรรหน่วยความจำที่ยืดหยุ่น เนื่องจากขณะนี้ข้อมูลสามารถจัดเก็บไว้ที่ใดก็ได้ในพื้นที่หน่วยความจำ ตราบใดที่มีตัวชี้อ้างอิงตำแหน่งของข้อมูล