Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để triển khai Truyền tải tìm kiếm đầu tiên theo chiều sâu sử dụng Thứ tự bài đăng

Khi bắt buộc phải triển khai tìm kiếm theo độ sâu đầu tiên bằng cách sử dụng duyệt thứ tự bài đăng, một lớp cây được tạo với các phương thức để thêm phần tử, tìm kiếm một phần tử cụ thể và thực hiện duyệt qua thứ tự bài đăng, v.v. Một thể hiện của lớp được tạo và nó có thể được sử dụng để truy cập các phương thức.

Dưới đây là minh chứng về điều tương tự -

Ví dụ

 class 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 ==key:trả về self cho con trong self.children:temp =child.search_elem (key) nếu tạm thời không Không có:trả về tạm thời Không có def postorder_traversal (self):for child in self.children:con .postorder_traversal () print (self.key, end ='') my_instance =Noneprint ('Menu (giả sử không có khóa trùng lặp)') print ('thêm  tại gốc') print ('thêm  bên dưới  ') print (' dfs ') print (' Thoát ') trong khi True:my_input =input (' Bạn sẽ làm thao tác gì? ') .split () operation =my_input [0] .strip (). low () if operation =='add':data =int (my_input [1]) new_node =Tree_Struct (data) suboperation =my_input [2] .strip (). low () if suboperation =='at':my_instance =new_node else:vị trí =my_ input [3] .strip (). low () key =int (position) ref_node =Không nếu my_instance không phải Không có:ref_node =my_instance.search_elem (key) nếu ref_node là Không:print ('Không tồn tại khoá như vậy') tiếp tục ref_node.add_elem (new_node) thao tác elif =='dfs':print ('Truyền tải đơn hàng sau là:', end ='') my_instance.postorder_traversal () print () thao tác elif =='bỏ':break  

Đầu ra

Menu
 (điều này giả sử không có khóa trùng lặp) thêm  tại rootadd  bên dưới  dfsquitBạn sẽ thực hiện thao tác gì? thêm 5 vào gốc Bạn sẽ làm thao tác gì? chèn 9 bên dưới 5Bạn sẽ thực hiện thao tác nào? chèn 2 bên dưới 9Bạn sẽ thực hiện thao tác nào? dfs Truyền tải đơn đặt hàng sau là:5Bạn sẽ thực hiện thao tác nào? bỏ 

Giải thích

  • Lớp 'Tree_struct' với các thuộc tính bắt buộc được tạo.

  • Nó có chức năng ‘init’ được sử dụng để tạo danh sách trống.

  • Nó có một phương thức ‘add_elem’ giúp thêm các phần tử vào cây.

  • Một phương thức khác có tên là ‘postorder_traversal’ thực hiện truyền tải đơn đặt hàng.

  • Phương thức có tên ‘search_elem’ được xác định, giúp tìm kiếm một phần tử cụ thể.

  • Một phiên bản được tạo và gán cho 'Không có gì'.

  • Đầu vào của người dùng được sử dụng cho thao tác cần được thực hiện.

  • Tùy thuộc vào lựa chọn của người dùng, hoạt động được thực hiện.

  • Đầu ra có liên quan được hiển thị trên bảng điều khiển.