ฉันมีคำถามต่อไปนี้ แต่ไม่มีคำตอบสำหรับเรื่องนี้ ฉันจะขอบคุณถ้าวิธีการของฉันถูกต้อง:
Q. เมื่อค้นหาค่าคีย์ 60 ในแผนผังการค้นหาแบบไบนารีโหนดที่มีค่าคีย์ 10, 20, 40, 50, 70, 80, 90 จะถูกสำรวจไม่จำเป็นต้องเรียงตามลำดับที่กำหนด คำสั่งซื้อที่แตกต่างกันมีความเป็นไปได้เท่าใดที่ค่าคีย์เหล่านี้สามารถเกิดขึ้นได้บนเส้นทางการค้นหาจากโหนดรูทที่มีค่า 60
(A) 35 (B) 64 (C) 128 (D) 5040
จากคำถามฉันเข้าใจว่าโหนดทั้งหมดที่ให้ไว้จะต้องรวมอยู่ในการสำรวจเส้นทางและท้ายที่สุดเราต้องไปถึงที่สำคัญเช่น 60 ตัวอย่างเช่นการรวมกันอย่างใดอย่างหนึ่งจะเป็น:
10, 20, 40, 50, 90, 80, 70, 60
เนื่องจากเราต้องข้ามโหนดทั้งหมดที่ระบุข้างต้นเราต้องเริ่มต้นด้วย 10 หรือ 90 ถ้าเราเริ่มต้นด้วย 20 เราจะไม่ถึง 10 (ตั้งแต่ 60> 20 และเราจะทรีย่อยทรีขวาของ 20)
ในทำนองเดียวกันเราไม่สามารถเริ่มต้นด้วย 80 เพราะเราจะไม่สามารถเข้าถึง 90 ตั้งแต่ 80 ถึง 60 เราจะสำรวจในต้นไม้ย่อยด้านซ้ายของ 80 และจึงไม่ถึง 90
ให้ใช้ 10 โหนดที่เหลือคือ 20, 40, 50, 70, 80, 90 โหนดถัดไปอาจเป็นได้ทั้ง 20 หรือ 90 เราไม่สามารถรับโหนดอื่น ๆ ได้ด้วยเหตุผลที่กล่าวถึงก่อนหน้านี้
หากเราพิจารณาในทำนองเดียวกันในแต่ละระดับเรามีสองทางเลือก เนื่องจากมี 7 โหนดสองตัวเลือกสำหรับ 6 ตัวแรกและไม่มีตัวเลือกสำหรับอันสุดท้าย ดังนั้นจึงมีทั้งหมด
พีชคณิต = = 64
นี่เป็นคำตอบที่ถูกต้องหรือไม่?
ถ้าไม่วิธีที่ดีกว่าคืออะไร?
ฉันต้องการจะพูดคุย ถ้าโหนดจะได้รับแล้วเส้นทางการค้นหาที่เป็นไปได้ทั้งหมดจะเป็น2 n - 1