Python 二叉树实现
生活随笔
收集整理的這篇文章主要介紹了
Python 二叉树实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
二叉樹(shù)是每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹(shù)的樹(shù)結(jié)構(gòu)。通常子樹(shù)被稱(chēng)作“左子樹(shù)”(left subtree)和“右子樹(shù)”(right subtree)
二叉樹(shù)的節(jié)點(diǎn)表示以及樹(shù)的創(chuàng)建
1、通過(guò)使用Node類(lèi)中定義三個(gè)屬性,分別為elem本身的值,還有l(wèi)child左孩子和rchild右孩子
2、樹(shù)的創(chuàng)建,創(chuàng)建一個(gè)樹(shù)的類(lèi),并給一個(gè)root根節(jié)點(diǎn),一開(kāi)始為空,隨后添加節(jié)點(diǎn)
class Node(object):'''節(jié)點(diǎn)類(lèi)'''def __init__(self, elem, lChild = None, rChild = None):self.elem = elemself.lChild = lChild #左子樹(shù)self.rChild = rChild #又子樹(shù)class Tree(object):'''二叉樹(shù)'''def __init__(self, node = None):self.root = nodedef add(self, item):'''添加子樹(shù)''''''思路1、先找到要添加元素的節(jié)點(diǎn)'''node = Node(item)if self.root is None:self.root = nodereturnli = [self.root]while li:cur_node = li.pop(0)if cur_node.lChild is not None:li.append(cur_node.lChild)else:cur_node.lChild = nodereturnif cur_node.rChild is not None:li.append(cur_node.rChild)else:cur_node.rChild = nodereturn?
總結(jié)
以上是生活随笔為你收集整理的Python 二叉树实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: div+css 单行或者多行超出文本,数
- 下一篇: 【学术相关】热议:寒门硕士要不要继续读博