Xin lỗi nếu tiếng Anh của tôi xấu, tôi nói tiếng Hàn như tiếng mẹ đẻ. Tôi đang thực hiện cây tìm kiếm nhị phân trong Python 3, nhưng tôi không thể đạt được mục tiêu của mình. Đây là mã:
I am implementing binary search tree in Python 3, but I wasn't able to meet my goal.
Here is code:
class Node[object]:
def __init__[self, key=None, data=None]:
self.key = key
self.data = data
class BinarySearchTree[object]:
keyfunc = None # Will it be worse when using lambda x: x as default?
def __init__[self, node=None]:
self.root = node
self.left = None
self.right = None
# I don't want default to be NoneType, but don't know how for now.
def add[self, key, data=None]:
node = Node[key, data]
if self.root is None:
self.root = node
return
parent = self.root.key
if self.keyfunc is None:
if key < parent:
if self.left is None:
self.left = __class__[node]
else:
self.left.add[key, data]
elif key > parent:
if self.right is None:
self.right = __class__[node]
else:
self.right.add[key, data]
else:
if keyfunc[key] < keyfunc[parent]:
if self.left is None:
self.left = __class__[node]
else:
self.left.add[key, data]
elif keyfunc[key] > keyfunc[parent]:
if self.right is None:
self.right = __class__[node]
else:
self.right.add[key, data]
def inorder[self]:
if self.root:
if self.left:
self.left.inorder[]
print[self.root.key, end=' ']
if self.right:
self.right.inorder[]
if __name__ == '__main__':
bst1 = BinarySearchTree[]
arr = [2,6,4,3,2,7,8,1,9,5]
for key in arr:
bst1.add[key]
bst1.inorder[]
Dù sao nó cũng hoạt động, nhưng điều tôi muốn là:
- Ngay cả khi nút gốc không có con, tôi muốn loại ____ 1 [hoặc
bst1.right
] luôn luôn là nhị phân. Bằng cách đó, tôi có thể cho phép cây null được xử lý phù hợp với các cây khác, và tôi cũng có thể loại bỏ lặp lạiif self.left is None
trong add [].
That way, I can allow null tree treated in consistency with other trees, and also can I remove repeatingif self.left is None
in add[]. - Tôi không muốn làm thủ công
bst1.left = BinarySearchTree[None]
sau khi định nghĩa lớp học, bởi vì nó sẽ được yêu cầu áp dụng cho tất cả các nút.
Tôi đã thử ____ 5 [tất nhiên nó dẫn đến đệ quy xấu] và cố gắng sử dụng phương pháp __new__[]
và các metaclass như được trả lời trong các câu hỏi Stackoverflow khác, nhưng không thể đưa ra giải pháp. Nó sẽ rất biết ơn nếu tôi có thể nhận được sự giúp đỡ.
It would very grateful if I can get help.
Trang chủ lập trình python phương thức ma thuật hoặc dunder trong python trong hướng dẫn nào
Hướng dẫn dùng phạm vi xác định pythonNội phân chínhhhào rang [] trong python là gÌ
Hướng dẫn popen pythonHướng dẫn sử dụng mô -đun phụ Trong python Để gọi một lệNH hoặc ứng dụng khác từ python. Bạn cũng sẽ học Đ-c Cách Dùng Subprocess.run [] Và ...
Hướng dẫn chuyển đổi pythonĐạo 1 22, 2019 8:46 Sa 1 Phút
Hướng dẫn Dùng py Spark PythonChúc mừng năm mới 2021 ^^! ...
Hướng dẫn loại bỏ trong pythonHa set set set [] trong python xào ph
Hướng dẫn dùng np.random.choice Python26. Random Một Số Trong Pythonrandom Và Bí mật Mô -đun,
NHÓM Phát Triển Của Chún tôma vừa ra mắt Trang web Langlearning.net Học tiếng ah Là ...
Hướng dẫn concatenate String pythonKết hợp chuỗi có nghĩa là thêm chuỗi với nhau.Python biến hướng dẫn Tạo các biến Tên biến Gán giá trị cho nhiều biến đầu ra biến Global VariaBlesCopyright © 2022 ...
Hướng dẫn dùng python pythonNội phân chínhphương thức head [] trong python là gìcú ph tòa
Hướng dẫn dùng bool định nghĩa pythonTrong BÀi HọC NÀY CHẤN TA Sẽ XEM Xét Chí Tiết Cách Sử Dụng Kiểu Dữ Liệu Bool Trong Python. Đây là một kiểu dữ liệu đơn giản NH
Hướng dẫn dùng định nghĩa đảo ngược pythonNội phân chínhđảo ngược Danh sách Ban Đ-u Trong Python | Phương thức Reverse [] Danh sách Cắt [Slice]
Hướng dẫn đóng cửa pythonTìm hiểu về đóng cửa trong pythongiống NH Về Cơ BảN, Phương Pháp Ràng Buộc dữ liệu với ...
Hướng dẫn tính ngày pythonKhông cần sử dụng LIB chỉ là mã thuần túy: #calculation các ngày giữa hai ngày ngày Đối với thuật toán này là ...
Hướng dẫn pymysqlMục lục NHÓM Phát triển của chún tôm vừa ra mắt trang web Langlearning.net học tiếng ah
Hướng dẫn dùng def khá pythonHướng dẫn sử dụng def trong python. Bạn sẽ học Đ-c Cách sử dụng def Để Khai BÁO HÀM Trong Python, Cũng NH
Hướng dẫn nối vào mảng pythonHa numpy.Append [] Có Sẵn Trong Gói Numpy. Như Tên Cho Thấy, Phụ lục Nhghĩa Là thênm Một Cái Gì ĐÓ. Ha numpy.Append [] được sử dụng Để thênm hoặc nối các giá ...
Bản dịch tiếng Việt [tiếng việt] của Dai Phong [bạn cũng có thể xem bài viết tiếng Anh gốc] Phân Tích số liệu thống Kê Giúp Chún Ta hiểu Đ- ...
Hướng dẫn dùng pandasTrụ sở chính: văn phầmg: số 27-3rd, Sunrise D, The Manor Central Park, đường nguyễn Xiển, Phường Đại Kim, Quận Hoàng Mai, Tp. Hà nội.liênn hệ truyền Thôn: ...
Hướng dẫn còn lại trong ví dụ PythonIntroduction to Python Remainder OperatorPython remainder operators are used for the computation of some operands. Operators are special symbols that are used on operands to do some operation ...
Hướng dẫn dùng parent class pythonTechblogSoftware Engineering I, Giới thiệu Class cùng với object là những thành phần lõi của Python. Class cung cấp một cách tổ chức các attributes[data] và methods ...
Hướng dẫn dùng eval python pythonVí dụ về hàm eval trong PythonVề mặt kỹ thuật, hàm eval là một hàm tích hợp sẵn trong Python và cho phép lập trình viên chạy code Python [được truyền dưới ...
Hướng dẫn python bytes encodingbytes[] trong Python trả về các đối tượng byte là một chuỗi các số nguyên, không thể thay đổi, được khởi tạo với size và dữ liệu cho trước, trong ...
Hướng dẫn dùng pandas where pythonTrụ sở chính:Văn phòng: Số 27-3RD, Sunrise D, The Manor Central Park, đường Nguyễn Xiển, phường Đại Kim, quận Hoàng Mai, TP. Hà Nội.Liên hệ truyền thông: ...
Hướng dẫn arange trong pythonCác khóa học miễn phí qua video:Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScriptMục lục bài viết:Giá trị trả lại và các tham số của np.arange []Đối số ...
New in version 2.4.Source code: Lib/collections.py and Lib/_abcoll.pyThis module implements specialized container datatypes providing alternatives to Python’s general purpose built-in ...
Hướng dẫn dim in pythonNội dung chínhPython Numpy là gì?NumPy ArrayNumpy cài đặt như thế nào?Multi-dimensional numPy array là gì?Python NumPy Array v/s ListPython NumPy OperationsTham khảoPython Numpy là ...
Hướng dẫn tài liệu python freeNội dung1 Python là gì?2 Tại sao nên học lập trình Python?3 Cơ hội việc làm Python4 Các tài liệu học lập trình Python cần phải biếtPython là gì? Bạn đang muốn ...
Hướng dẫn *args trong pythonDẫn nhậpFunctions là cuộc sống, đúng không? nếu bạn là người mới vào học Python - là lính mới hay nhảy qua từ ngôn ngữ khác - bạn học về số lượng ...
Hướng dẫn dùng python melt pythonIIUC, bạn có thể sử dụng pandas.Index.differenceđể lấy tất cả các cột của khung dữ liệu không có trong danh sách được chỉ định của bạn.Một chút của ...
Hướng dẫn abstract class trong pythonĐã đăng vào thg 6 18, 2019 4:28 CH 5 phút đọc Hello everyone! Sau bao khó khăn thì chúng ta lại được gặp nhau mọi người nhỉ. Và như thường lệ, mình sẽ giới ...
Hướng dẫn dùng python stats pythonIn this Python tutorial, we will learn about the “Python Scipy Stats Norm” to calculate the different types of normal distribution and how to plot it and cover the following topics.Nội dung ...
Hướng dẫn googletrans pythonTrong bài học này chúng ta sẽ tìm hiểu googletrans, hay còn gọi là Python Google Translator, đây là một module dùng để dịch văn bản qua các ngôn ngữ bằng cách sử ...
Hướng dẫn recursive permutation pythonIm having trouble trying to make a permutation code with recursion. This is suppose to return a list back to the use with all the possible position for each letter.For the word cat, it is suppose to ...