เมื่อจำเป็นต้องดำเนินการค้นหาเชิงลึกก่อนโดยใช้การข้ามผ่านคำสั่งซื้อภายหลัง คลาสต้นไม้จะถูกสร้างขึ้นด้วยวิธีการเพิ่มองค์ประกอบ ค้นหาองค์ประกอบเฉพาะ และดำเนินการตามคำสั่งผ่านรายการ เป็นต้น มีการสร้างอินสแตนซ์ของคลาส และสามารถใช้เพื่อเข้าถึงเมธอดได้
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
คลาส Tree_Struct:def __init__(self, key=None):self.key =key self.children =[] def add_elem(self, node):self.children.append(node) def search_elem(self, key) :if self.key ==คีย์:return self สำหรับ child ใน self.children:temp =child.search_elem(key) ถ้า temp ไม่ใช่ None:return temp return ไม่มี def postorder_traversal(self):สำหรับเด็กใน self.children:child .postorder_traversal() print(self.key, end=' ' ')my_instance =Noneprint('เมนู (ถือว่าไม่มีคีย์ที่ซ้ำกัน)')print('add at root')print('add below ')print('dfs')print('quit') while True:my_input =input('What operation you do ? ').split() operation =my_input[0].strip().lower() if operation =='add':data =int(my_input[1]) new_node =Tree_Struct(data) suboperation =my_input[2].strip().lower() if suboperation =='at':my_instance =new_node อื่น:ตำแหน่ง =my_ input[3].strip().lower() key =int(position) ref_node =None if my_instance is not none:ref_node =my_instance.search_elem(key) if ref_node is None:พิมพ์ ('ไม่มีคีย์ดังกล่าว') ดำเนินการต่อ ref_node.add_elem(new_node) การดำเนินการ elif =='dfs':print('การข้ามผ่านคำสั่งภายหลังคือ:', end='') my_instance.postorder_traversal() print() การดำเนินการ elif =='เลิก':แตกก่อน>ผลลัพธ์
เมนู (ถือว่าไม่มีคีย์ที่ซ้ำกัน) เพิ่ม ที่ rootadd ด้านล่าง dfsquit คุณจะทำอย่างไร เพิ่ม 5 ที่ root คุณจะทำอย่างไร? แทรก 9 ด้านล่าง 5 คุณจะทำอะไร? แทรก 2 ด้านล่าง 9 คุณจะทำอย่างไร? dfsการข้ามผ่านภายหลังคือ:5คุณจะทำอย่างไร ? ลาออกคำอธิบาย
สร้างคลาส 'Tree_struct' พร้อมแอตทริบิวต์ที่จำเป็นแล้ว
มีฟังก์ชัน 'init' ที่ใช้สร้างรายการว่าง
มันมีวิธีการ 'add_elem' ที่ช่วยเพิ่มองค์ประกอบให้กับต้นไม้
อีกวิธีหนึ่งที่ชื่อว่า 'postorder_traversal' ซึ่งทำการข้ามผ่านภายหลัง
มีการกำหนดเมธอดที่ชื่อว่า "search_elem" ซึ่งช่วยในการค้นหาองค์ประกอบเฉพาะ
มีการสร้างและกำหนดอินสแตนซ์ให้กับ "ไม่มี"
ผู้ใช้ป้อนข้อมูลสำหรับการดำเนินการที่จำเป็นต้องดำเนินการ
ขึ้นอยู่กับทางเลือกของผู้ใช้ การดำเนินการจะดำเนินการ
เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล