Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Binary Tree ADT ในโครงสร้างข้อมูล


แนวคิดพื้นฐาน

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

Binary Tree ADT ในโครงสร้างข้อมูล

ในรูปด้านบน ต้นไม้ไบนารีประกอบด้วยรูทและทรีย่อยสองทรี TreeLeft &TreeRight โหนดทั้งหมดทางด้านซ้ายของไบนารีทรีจะแสดงเป็นทรีย่อยด้านซ้าย และโหนดทั้งหมดทางด้านขวาของไบนารีทรีจะเรียกว่าทรีย่อยที่ถูกต้อง

การนำไปใช้

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

การประกาศโหนดไบนารีทรี

typedef struct tree_node *tree_ptr;
struct tree_node
{
   element_type element1;
   tree_ptr left1; tree_ptr right1;
};
typedef tree_ptr TREE;

ประเภทของไบนารีทรี

ต้นไม้ไบนารีอย่างเคร่งครัด

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

ต้นไม้เอียง

ต้นไม้เอียงถูกกำหนดให้เป็นต้นไม้ไบนารีซึ่งทุกโหนดยกเว้นใบไม้มีโหนดย่อยเพียงโหนดเดียว ต้นไม้ไบนารีเบ้มีสองประเภท ได้แก่ ต้นไม้ไบนารีเบ้ซ้ายและต้นไม้ไบนารีเบ้ขวา

ไบนารีทรีเบ้ซ้าย

ต้นไม้เบ้ซ้ายมีโหนดที่เกี่ยวข้องกับลูกด้านซ้ายเท่านั้น เป็นไบนารีทรีที่มีเฉพาะทรีย่อยด้านซ้ายเท่านั้น

ไบนารีทรีเบ้ขวา

ต้นไม้เบ้ขวามีโหนดที่เกี่ยวข้องกับชายด์เท่านั้น เป็นไบนารีทรีที่มีเฉพาะทรีย่อยที่ถูกต้องเท่านั้น

ไบนารีทรีเต็มหรือทรีไบนารีที่เหมาะสม

ต้นไม้ไบนารีถูกกำหนดให้เป็นต้นไม้ไบนารีแบบเต็ม ถ้าใบทั้งหมดอยู่ในระดับเดียวกัน และโหนดที่ไม่ใช่ใบไม้ทุกโหนดมีลูกสองคนพอดี และควรประกอบด้วยจำนวนโหนดสูงสุดที่เป็นไปได้ในทุกระดับ ต้นไม้ไบนารีเต็มความสูง h มีโหนดสูงสุด 2h+1 – 1 โหนด

ต้นไม้ไบนารีที่สมบูรณ์

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

ไบนารีทรีเกือบสมบูรณ์

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

ความแตกต่างระหว่างต้นไม้ทั่วไปและต้นไม้ไบนารี

ต้นไม้ทั่วไป

  • ต้นไม้ทั่วไปไม่จำกัดจำนวนลูก
  • การประเมินนิพจน์เป็นเรื่องยากสำหรับต้นไม้ทั่วไป

ต้นไม้ไบนารี

  • ไบนารีทรีมีลูกได้สูงสุดสองคน
  • การประเมินนิพจน์นั้นง่ายในไบนารีทรี

การประยุกต์ใช้ต้นไม้

  • การจัดการนิพจน์ทางคณิตศาสตร์
  • การสร้างตารางสัญลักษณ์
  • การวิเคราะห์ไวยากรณ์
  • การเขียนไวยากรณ์
  • การสร้างแผนผังนิพจน์