Selasa, 15 Mei 2018

Binary Tree Python

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

Sejarah, Kegiatan, dan Dokumnetasi Angkatan Teknik Informatika 2017 (INTEGER_17)

Sejarah, Kegiatan, dan Dokumentasi Angkatan Teknik Informatika 2017 (INTEGER_17) Assalamualaikum Wr. Wb. INTEGER Information Te...