โครงสร้างข้อมูลที่สำคัญที่สุด 8 ประการในการออกแบบเว็บไซต์คือข้อใด

เผยแพร่แล้ว: 2022-04-28

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

อาร์เรย์

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

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

มันถูกใช้ในอัลกอริธึมการเรียงลำดับที่หลากหลาย เช่น การเรียงลำดับแบบแทรก การเรียงลำดับแบบด่วน การเรียงลำดับแบบฟอง และการเรียงลำดับแบบรวม

รายการที่เชื่อมโยง

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

องค์ประกอบของรายการที่เชื่อมโยงเรียกว่าโหนด แต่ละโหนดมีคีย์และตัวชี้ไปยังโหนดถัดไปซึ่งเรียกว่า Next และองค์ประกอบสุดท้ายของรายการที่เชื่อมโยงเรียกว่าสตริง

กอง

สแต็กเป็นโครงสร้าง LIFO ที่ใช้กันอย่างแพร่หลาย (last-in-first-out-last-in-first-out) ในภาษาการเขียนโปรแกรมหลายภาษา การออกแบบนี้เรียกว่า "กอง" เพราะดูเหมือนกองจริง ๆ กองจาน นอกจากนี้ยังมีฟังก์ชันเพิ่มเติมสำหรับตรวจสอบสถานะของสแตก เช่น

  • พีค: แสดงส่วนบนสุดของสแต็กโดยไม่ทำให้สแต็กว่างเปล่า
  • isEmpty: ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่
  • IsFull: ตรวจสอบว่าสแต็กเต็มหรือไม่

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

คิว

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

  • Enqueue: แทรกรายการที่ท้ายคิว
  • Dequeue-Remove รายการจากด้านบนของคิว

ตารางแฮช

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

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

ต้นไม้

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

ตัวอย่างบางส่วน ได้แก่ ต้นไม้ค้นหาแบบไบนารี, ต้นไม้ B, ต้นไม้, ต้นไม้สีแดง-ดำ, ต้นไม้ขยาย, ต้นไม้ AVL และต้นไม้ n-ary แผนผังการค้นหาแบบไบนารี แผนผังการค้นหาแบบไบนารี (BST) ตามชื่อที่แนะนำ คือแผนผังไบนารีที่สามารถหาข้อมูลได้

กอง

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

  • กองขั้นต่ำ: กุญแจของพ่อน้อยกว่าหรือเท่ากับกุญแจของลูก รูทจะมีค่าต่ำสุดของฮีป
  • ฮีปสูงสุด: คีย์ของรายการพาเรนต์มีค่ามากกว่าหรือเท่ากับคีย์ของคีย์ย่อย สิ่งนี้เรียกว่าแอตทริบิวต์ฮีปสูงสุด รูทจะมีค่าสูงสุดของฮีป

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

กราฟ

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

  • หากขอบของกราฟทั้งหมดมีทิศทาง ซึ่งระบุจุดยอดเริ่มต้นและจุดยอดสุดท้าย กราฟจะเรียกว่ากราฟกำกับ
  • ถ้าขอบของกราฟทั้งหมดไม่มีทิศทาง จะเรียกว่ากราฟที่ไม่มีทิศทาง สามารถเคลื่อนที่ได้ทั้งสองทิศทางระหว่างจุดยอดสองจุด
  • หากจุดยอดไม่ได้เชื่อมต่อกับโหนดอื่นในกราฟ จะถือว่าจุดยอดนั้นแยกออกจากกัน