ฉันมีต้นไม้ที่ไม่มีทิศทางซึ่งมีจุดสูงสุดที่ฉันต้องการติดป้าย โหนดใบไม้ควรมีป้ายกำกับหนึ่งรายการ จากนั้นสมมติว่าใบถูกลบออก ในต้นไม้ที่เหลือใบควรจะติดป้ายที่สอง กระบวนการนี้จะดำเนินต่อไปในลักษณะที่ชัดเจนจนกระทั่งจุดยอดทั้งหมดมีป้ายกำกับ เหตุผลที่ฉันทำเช่นนี้คือฉันต้องการเก็บจุดยอดในคิวและผ่านพวกเขา "ทิ้งก่อน" มีวิธีง่าย ๆ ในการทำเวลานี้หรือไม่?
ฉันสามารถแก้ปัญหาด้วยการทำ BFS ในทุกขั้นตอน แต่ในกรณีที่เลวร้ายที่สุดในทุกขั้นตอนที่ฉันไปถึงจุดสุดยอดทุกอันให้เอาใบสองใบออกและเข้าพวกเขา ฉันเชื่อว่านี่ใช้เวลากำลังสอง
อีกแนวคิดหนึ่งคือค้นหาใบทั้งหมดก่อนแล้วจึงทำ BFS จากทุก ๆ ใบ นี่ไม่ได้ให้ทางออกที่ต้องการแก่ฉัน ตัวอย่างเช่นลองพิจารณา "กราฟรูปทรงมงกุฎ" ดังในรูปด้านล่าง โซลูชั่นที่ต้องการแสดงขึ้น แต่การเปิดตัว BFS จากแต่ละใบไม้จะทำให้มีการใช้ป้ายกำกับเพียงสองป้ายเท่านั้น
อุดมคติแล้วอัลกอริธึมเชิงเส้นเวลาก็จะอธิบายและนำไปปฏิบัติได้ง่าย