Binary Tree Python
Tree digunakan di banyak bidang informatika termasuk sistem operasi, pemrosessan bahasa alami, penggalian data web, grafika, sistem database dan jaringan komputer. Struktur data tree mempuyai suatu root (akar), branches (cabang) dan leaves (daun-daun).
Pada tree berbentuk list of lists (list di dalam list), kita menyimpan nilai dari node root sebagai elemen pertama dari list. Elemen kedua dari list akan merepresentasikan sub-tree kiri. Elemen ketiga adalah list lain yang mewakili sub-tree kanan. Tentang ilustrasikan struktur data ini, gambar 5.1 memperlihatkan tree sederhana beserta list yang mewakilinya.
Source Code :
from __future__ import print_function
Pada tree berbentuk list of lists (list di dalam list), kita menyimpan nilai dari node root sebagai elemen pertama dari list. Elemen kedua dari list akan merepresentasikan sub-tree kiri. Elemen ketiga adalah list lain yang mewakili sub-tree kanan. Tentang ilustrasikan struktur data ini, gambar 5.1 memperlihatkan tree sederhana beserta list yang mewakilinya.
Source Code :
from __future__ import print_function
class Binarytree:
def __init__(self,root):
self.key = root
self.leftChild = None
self.rightChild = None
def insertLeft(self,newNode):
if self.leftChild == None :
self.leftChild = Binarytree(newNode)
else :
t = Binarytree(newNode)
t.leftChild = self.leftChild
self.leftChild = t
def insertRight(self,newNode):
if self.rightChild == None :
self.rightChild = Binarytree(newNode)
else :
t = Binarytree(newNode)
t.rightChild = self.rightChild
self.rightChild = t
def getrightChild(self):
return self.rightChild
def getleftChild(self):
return self.leftChild
def getrootVal(self):
return self.key
def size(self):
count = 0
selfleft = self
selfright = self
while selfleft.getleftChild() != None or selfright.getrightChild() != None :
count += 1
if selfleft.getleftChild() != None:
selfleft = selfleft.getleftChild()
else :
selfright = selfright.getrightChild()
return count
r = Binarytree('a')
r.insertLeft('b')
r.insertRight('c')
r.getleftChild().insertLeft('d')
r.getleftChild().insertRight('e')
r.getleftChild().getrightChild().insertLeft('f')
r.getleftChild().getrightChild().insertRight('g')
print(r.getrootVal())
print(r.getleftChild().getrootVal())
print(r.getleftChild().getleftChild().getrootVal())
print(r.size())
Tidak ada komentar:
Posting Komentar