โครงสร้างข้อมูลเชิงเส้นคืออะไร? รายการโครงสร้างข้อมูลอธิบาย

เผยแพร่แล้ว: 2021-06-18

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

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

จุดที่สำคัญที่สุดในโครงสร้างข้อมูลคือ:

  • ข้อมูลจำนวนมากถูกจัดระเบียบผ่านโครงสร้างข้อมูลทุกประเภท
  • โครงสร้างข้อมูลทุกโครงสร้างจะเป็นไปตามหลักการเฉพาะ
  • ควรปฏิบัติตามหลักการพื้นฐานของโครงสร้างข้อมูล แม้ว่าจะมีการดำเนินการใดๆ เหนือโครงสร้างข้อมูลก็ตาม

การจัดเรียงข้อมูลภายในโครงสร้างข้อมูลสามารถทำตามคำสั่งต่างๆ ได้ โครงสร้างข้อมูลจึงถูกจำแนกตามวิธีการจัดเรียงข้อมูล โดยพื้นฐาน แล้ว โครงสร้างข้อมูล มีสอง ประเภท

  1. โครงสร้างข้อมูลดั้งเดิม
  2. โครงสร้างข้อมูลที่ไม่ใช่พื้นฐาน

โครงสร้างข้อมูลประเภทดั้งเดิมรวมถึงโครงสร้างข้อมูลที่กำหนดไว้ล่วงหน้า เช่น ถ่าน, ทุ่น, int และสองเท่า

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

  1. โครงสร้างข้อมูลเชิงเส้น
  2. โครงสร้างข้อมูลไม่เป็นเชิงเส้น

อ่าน: เรียนรู้ความแตกต่างระหว่างโครงสร้างข้อมูลเชิงเส้นและไม่เป็นเชิงเส้น

ในบทความนี้ เราจะพูดถึงโครงสร้างข้อมูลที่จัดเก็บข้อมูลแบบเส้นตรงเป็นหลัก

สารบัญ

โครงสร้างข้อมูลเชิงเส้น

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

ลักษณะเฉพาะ

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

โครงสร้างเหล่านี้จึงสามารถสรุปได้เป็นโครงสร้างข้อมูลประเภทหนึ่งซึ่งองค์ประกอบต่างๆ ถูกจัดเก็บตามลำดับและตามลำดับดังนี้:

  • มี องค์ประกอบแรก เพียง องค์ประกอบ เดียวซึ่งมี องค์ประกอบ ถัดไป หนึ่ง องค์ประกอบ
  • มี องค์ประกอบสุดท้าย เพียง องค์ประกอบ เดียวซึ่งมี องค์ประกอบ ก่อนหน้า หนึ่ง องค์ประกอบ
  • องค์ประกอบอื่น ๆ ทั้งหมดในโครงสร้างข้อมูลมีองค์ประกอบ ก่อนหน้า และ องค์ประกอบ ถัดไป

รายการโครงสร้างข้อมูลในรูปแบบเชิงเส้นของโครงสร้างข้อมูล

1. อาร์เรย์

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

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

2. รายการเชื่อมโยง

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

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

รายการเชื่อมโยงมีสามประเภท:

  • Single Linked List: โครงสร้างประเภทนี้มีที่อยู่หรือการอ้างอิงของโหนดถัดไปที่เก็บไว้ในโหนดปัจจุบัน ดังนั้นโหนดที่สุดท้ายมีที่อยู่และการอ้างอิงเป็น NULL ตัวอย่าง: A->B->C->D->E->NULL
  • A Double Linked List : ตามชื่อที่แนะนำ แต่ละโหนดมีการอ้างอิงสองรายการที่เกี่ยวข้อง การอ้างอิงหนึ่งชี้ไปที่โหนดก่อนหน้าในขณะที่การอ้างอิงที่สองชี้ไปที่โหนดถัดไป สามารถข้ามผ่านได้ทั้งสองทิศทางเนื่องจากมีข้อมูลอ้างอิงสำหรับโหนดก่อนหน้า นอกจากนี้ การลบไม่จำเป็นต้องเข้าถึงอย่างชัดแจ้ง ตัวอย่าง: NULL<-A<->B<->C<->D<->E->NULL
  • รายการที่เชื่อมโยงซึ่งเป็นวงกลม: โหนดในรายการเชื่อมโยงแบบวงกลมมีการเชื่อมต่อในลักษณะที่วงกลมถูกสร้างขึ้น เนื่องจากรายการที่เชื่อมโยงเป็นวงกลมจึงไม่มีจุดสิ้นสุดและด้วยเหตุนี้จึงไม่มีค่า NULL รายการเชื่อมโยงประเภทนี้สามารถติดตามโครงสร้างได้ทั้งแบบเดี่ยวและแบบทวีคูณ ไม่มีโหนดเริ่มต้นที่เฉพาะเจาะจง และโหนดใดๆ จากข้อมูลสามารถเป็นโหนดเริ่มต้นได้ การอ้างอิงของโหนดสุดท้ายชี้ไปที่โหนดแรก ตัวอย่าง: A->B->C->D->E.

คุณสมบัติของรายการที่เชื่อมโยงคือ:

    • เวลาเข้าถึง: O(n)
    • ค้นหาเวลา: O(n)
    • การเพิ่มองค์ประกอบ: O(1)
  • การลบองค์ประกอบ : O(1)

3. กอง

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

คุณสมบัติของสแต็กคือ:

  • การเพิ่มองค์ประกอบ: O(1)
  • การลบองค์ประกอบ: O(1)
  • เวลาเข้าถึง: O(n) [กรณีที่เลวร้ายที่สุด]
  • ปลายด้านเดียวเท่านั้นที่อนุญาตให้แทรกและลบองค์ประกอบ

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

4. คิว

คิวคือประเภทของโครงสร้างข้อมูลที่จัดเก็บองค์ประกอบตามกฎของเข้าก่อนออกก่อน (FIFO) มีการปฏิบัติตามคำสั่งเฉพาะสำหรับการดำเนินการที่จำเป็นเหนือองค์ประกอบ ความแตกต่างของคิวจากคิวของสแต็กอยู่ที่การนำองค์ประกอบออก โดยที่อ็อบเจ็กต์ที่เพิ่มล่าสุดจะถูกลบออกก่อนในสแต็ก ในขณะที่ในกรณีของคิว องค์ประกอบที่เพิ่มเข้ามาก่อนจะถูกลบออกก่อน

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

คุณสมบัติของคิวคือ:

  • การแทรกองค์ประกอบ: O(1)
  • การลบองค์ประกอบ: O(1)
  • เวลาเข้าถึง: O(n)

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

บทสรุป

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

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

มีการสังเกตการใช้โครงสร้างข้อมูลอย่างกว้างขวางในภาษาแมชชีนเลิร์นนิง ปัญหาในชีวิตจริง ฯลฯ ผู้คนที่ใฝ่ฝันที่จะทำงานในสาขานี้ ควรจะสามารถควบคุมแนวคิดเหล่านี้ได้

หากคุณต้องการเรียนรู้เพิ่มเติม ลองดูโปรแกรม upGrad Executive PG ใน Data Science ซึ่งเป็นแพลตฟอร์มที่จะเปลี่ยนคุณให้เป็นนักวิทยาศาสตร์ข้อมูลที่ประสบความสำเร็จ ออกแบบมาสำหรับมืออาชีพระดับกลาง หลักสูตรวิทยาศาสตร์ข้อมูลจะเปิดเผยความรู้ทั้งทางทฤษฎีและเชิงปฏิบัติที่จำเป็นสำหรับความสำเร็จของคุณ เหตุใดจึงต้องรอตัวเลือกอื่นๆ ในเมื่อความสำเร็จอยู่แค่เพียงคลิกเดียว หากต้องการความช่วยเหลือใด ๆ เรายินดีที่จะช่วยเหลือคุณ

โครงสร้างข้อมูลเชิงเส้นและไม่เป็นเชิงเส้นต่างกันอย่างไร

ต่อไปนี้แสดงให้เห็นถึงความแตกต่างที่มีนัยสำคัญระหว่างโครงสร้างข้อมูลเชิงเส้นและไม่เป็นเชิงเส้น:
โครงสร้างข้อมูลเชิงเส้น -
1. ในโครงสร้างข้อมูลเชิงเส้น แต่ละองค์ประกอบเชื่อมต่อกันเป็นเส้นตรงโดยอ้างอิงถึงองค์ประกอบถัดไปและก่อนหน้า
2. การนำไปปฏิบัตินั้นค่อนข้างง่ายเนื่องจากเกี่ยวข้องกับระดับเดียวเท่านั้น
3 การสูญเสียหน่วยความจำเป็นเรื่องปกติมากขึ้นในโครงสร้างข้อมูลเชิงเส้น
4. สแต็ค คิว อาร์เรย์ และรายการที่เชื่อมโยง เป็นตัวอย่างทั้งหมดของโครงสร้างข้อมูลเชิงเส้น
โครงสร้างข้อมูลที่ไม่ใช่เชิงเส้น -
1. ในโครงสร้างข้อมูลที่ไม่เป็นเชิงเส้น องค์ประกอบต่างๆ จะเชื่อมต่อกันแบบลำดับชั้น
2. การนำไปปฏิบัตินั้นซับซ้อนกว่ามาก เนื่องจากมีหลายระดับที่เกี่ยวข้องกัน
3. หน่วยความจำถูกใช้อย่างชาญฉลาดและแทบไม่มีการสูญเสียหน่วยความจำเลย
4. กราฟและต้นไม้เป็นตัวอย่างของโครงสร้างข้อมูลที่ไม่เป็นเชิงเส้น

รายการเชื่อมโยงมีประสิทธิภาพมากกว่าอาร์เรย์อย่างไร

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

อะไรคือการดำเนินการที่พบบ่อยที่สุดในโครงสร้างข้อมูลเชิงเส้น?

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