用Python實現對Tree樹基本的增刪查詢方法

2021-10-08 15:05:06 字數 2315 閱讀 5758

1、name:當前節點名字

2、parent:父節點物件

3、child:字節點物件

class treenode(object):

def __init__(self, name, parent=none):

super(treenode, self).__init__()

self.name = name

self.parent = parent

self.child = {}

def __repr__(self) :

return 'treenode(%s)' % self.name

1、get_child(name) 獲取子節點

2、add_child(name,obj) 增加子節點

3、del_child(name) 刪除子節點

4、find_child(name) 查詢子節點

class treenode(object):

對面試經驗、軟體、介面、自動化測試感興趣可以175317069,群內會有不定期的免

費資料鏈結發放。

def get_child(self, name, defval=none):

return self.child.get(name, defval)

def add_child(self, name, obj=none):

if obj and not isinstance(obj, treenode):

raise valueerror('treenode only add another treenode obj as child')

if obj is none:

obj = treenode(name)

obj.parent = self

self.child[name] = obj

return obj

def del_child(self, name):

if name in self.child:

del self.child[name]

def find_child(self, path, create=false):

# 輸入的是字串時,將路徑轉換為列表

path = path if isinstance(path, list) else path.split()

cur = self

for sub in path:

# 搜尋

obj = cur.get_child(sub)

if obj is none and create:

obj = cur.add_child(sub)

if obj is none:

break

cur = obj

return obj

1、獲得當前節點到root的路徑

class treenode(object):

對面試經驗、軟體、介面、自動化測試感興趣可以175317069,群內會有不定期的免費資料鏈結發放。

@property

def path(self):

if self.parent:

return '%s %s' % (self.parent.path.strip(), self.name)

else:

return self.name

2、用系統 in 操作符判斷是否存在名字為name的子節點

class treenode(object):

def __contains__(self, item):

return item in self.child

3、建立乙個dump()方法把樹結構列印出來

class treenode(object):

def dump(self, indent=0):

tab = ' '*(indent-1) + ' |- ' if indent > 0 else ''

print('%s%s' % (tab, self.name))

for name, obj in self.items():

obj.dump(indent+1)

JS 外掛程式 樹Tree 開發與實現

tree外掛程式 需要實現 1 自動將資料組織成上下級關係,這樣我們在前端手工新增資料或者從資料庫中獲取到的資料不需要我們來組織上下級關係 2 支援自定 載入目錄樹 支援xml json 格式的資料載入 3 實現樹節點的選擇 單選 複選 級聯選擇 功能 4 支援大資料的一次性載入 下面開始分享自己寫...

Python 資料結構與演算法 tree(樹)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!我們可將該樹表示為乙個二維列表 lists of lists t a,b c d e f 在某些情況下,由於我們可能事先知道其內部節點 internal node 所能擁有的最大子節點數,例如,二叉樹,各節點最多只能擁有兩個子節點,所以可以選擇其他...

Python 資料結構與演算法 tree(樹)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!我們可將該樹表示為乙個二維列表 lists of lists t a,b c d e f 在某些情況下,由於我們可能事先知道其內部節點 internal node 所能擁有的最大子節點數,例如,二叉樹,各節點最多只能擁有兩個子節點,所以可以選擇其他...