Hướng dẫn python recursion alternative - thay thế đệ quy python

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ại if self.left is None trong add [].
    That way, I can allow null tree treated in consistency with other trees, and also can I remove repeating if 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.

Hướng dẫn python dunder

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 python

Nội phân chínhhhào rang [] trong python là gÌ

Hướng dẫn popen python

Hướ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 Python

Chúc mừng năm mới 2021 ^^! ...

Hướng dẫn loại bỏ trong python

Ha set set set [] trong python xào ph

Hướng dẫn dùng np.random.choice Python

26. Random Một Số Trong Pythonrandom Và Bí mật Mô -đun,

Hướng dẫn dùng char python python

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 python

Kế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 python

Nộ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 python

Trong 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 python

Nộ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 python

Tì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 python

Khô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 pymysql

Mụ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á python

Hướ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 python

Ha 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á ...

Hướng dẫn Gói thống kê Python

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 pandas

Trụ 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ụ Python

Introduction 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 python

TechblogSoftware 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 python

Ví 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 encoding

bytes[] 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 python

Trụ 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 python

Cá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ố ...

Hướng dẫn dùng herencia collection python

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 python

Nộ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 free

Nộ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 python

Dẫ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 python

IIUC, 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 python

In 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 python

Trong 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 python

Im 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 ...

Bài Viết Liên Quan

Chủ Đề