İkili Arama Ağacına(BST) Ekleme

#Düğüm oluşturma
class Node():

    def __init__(self,data): #ikili ağaç düğümü 3 kısımdan oluşur
        self.data = data     # 1.Düğümde bulunan değer
        self.left = None     # 2.Düğüm solundaki düğümün  adresi
        self.right= None     # 3.Düğümün sağındaki düğümün adresi

def insert(root,node):
    if root is None:
        root = node
    else:
        if root.data < node.data:
            if root.right is None:
                root.right = node
            else:
                insert(root.right, node)
        else:
            if root.left is None:
                root.left = node
            else:
                insert(root.left, node)

def inorder(root):
    if root:
        inorder(root.left)
        print(root.data,end=" ")
        inorder(root.right)
if __name__=='__main__':

    root = Node(5)         #kök düğüm 5 ekle
    root.left = Node(3)    #kök düğümün soluna 3 ekle
    root.left.left = Node(2) # kök düğümün solunun soluna 2 ekle
    root.left.right = Node(4) #kök düğümün solunun sağına 4 ekle
    root.right = Node(9)      # kök düğümün sağına 9 ekle
    root.right.left = Node(7) # kök düğümün sağının soluna 7 ekle
    root.right.right = Node(10)# kök düğümün sağının sağına 10 ekle

    print("Eklemeden önce İnorder Dolaşma")
    print(inorder(root))
    insert(root, Node(30))
    insert(root, Node(70))
    print()
    print("Eklemeden sonra İnorder Dolaşma")
    print(inorder(root))

    #Ağacının görünümü şu şekilde olur
    """
            5
         /     \
        3       9
     /    \    /  \
   2       4  7    10
  / \     / \    /    \
                      None
None None None """
Reklamlar
Standart

İkili Ağaçta (Binary Tree) Postorder Dolaşma

#Düğüm oluşturma
class Node():

    def __init__(self,data): #ikili ağaç düğümü 3 kısımdan oluşur
        self.data = data     # 1.Düğümde bulunan değer
        self.left = None     # 2.Düğüm solundaki düğümün  adresi
        self.right= None     # 3.Düğümün sağındaki düğümün adresi

def postorder(root):

    if root:
        postorder(root.left)
        postorder(root.right)
        print(root.data,end=" ")

if __name__=='__main__':

    root = Node(5)         #kök düğüm 5 ekle
    root.left = Node(3)    #kök düğümün soluna 3 ekle
    root.left.left = Node(2) # kök düğümün solunun soluna 2 ekle
    root.left.right = Node(4) #kök düğümün solunun sağına 4 ekle
    root.right = Node(9)      # kök düğümün sağına 9 ekle
    root.right.left = Node(7) # kök düğümün sağının soluna 7 ekle
    root.right.right = Node(10)# kök düğümün sağının sağına 10 ekle

    print("Postorder Dolaşma")
    print(postorder(root))

    #Ağacının görünümü şu şekilde olur
    """
            5
         /     \
        3       9
     /    \    /  \
   2       4  7    10
  / \     / \    /    \
                      None
None None None """
Standart

İkili Ağaçta (Binary Tree) Preorder Dolaşma

#Düğüm oluşturma
class Node():

    def __init__(self,data): #ikili ağaç düğümü 3 kısımdan oluşur
        self.data = data     # 1.Düğümde bulunan değer
        self.left = None     # 2.Düğüm solundaki düğümün  adresi
        self.right= None     # 3.Düğümün sağındaki düğümün adresi


def preorder(root):
    if root:
        print(root.data, end=" ")
        preorder(root.left)
        preorder(root.right)

if __name__=='__main__':

    root = Node(5)         #kök düğüm 5 ekle
    root.left = Node(3)    #kök düğümün soluna 3 ekle
    root.left.left = Node(2) # kök düğümün solunun soluna 2 ekle
    root.left.right = Node(4) #kök düğümün solunun sağına 4 ekle
    root.right = Node(9)      # kök düğümün sağına 9 ekle
    root.right.left = Node(7) # kök düğümün sağının soluna 7 ekle
    root.right.right = Node(10)# kök düğümün sağının sağına 10 ekle

    print("Preorder Dolaşma ")
    print(preorder(root))

    #Ağacının görünümü şu şekilde olur
    """
            5
         /     \
        3       9
     /    \    /  \
   2       4  7    10
  / \     / \    /    \
                      None
None None None """
Standart

İkili Ağaçta(Linked List) Inorder Dolaşma

#Düğüm oluşturma
class Node():

    def __init__(self,data): #ikili ağaç düğümü 3 kısımdan oluşur
        self.data = data     # 1.Düğümde bulunan değer
        self.left = None     # 2.Düğüm solundaki düğümün  adresi
        self.right= None     # 3.Düğümün sağındaki düğümün adresi
def inorder(root):
    if root:
        inorder(root.left)
        print(root.data,end=" ")
        inorder(root.right)



if __name__=='__main__':

    root = Node(5)         #kök düğüm 5 ekle
    root.left = Node(3)    #kök düğümün soluna 3 ekle
    root.left.left = Node(2) # kök düğümün solunun soluna 2 ekle
    root.left.right = Node(4) #kök düğümün solunun sağına 4 ekle
    root.right = Node(9)      # kök düğümün sağına 9 ekle
    root.right.left = Node(7) # kök düğümün sağının soluna 7 ekle
    root.right.right = Node(10)# kök düğümün sağının sağına 10 ekle

    print("İnorder Dolaşma")
    print(inorder(root))

    #Ağacının görünümü şu şekilde olur
    """
            5
         /     \
        3       9
     /    \    /  \
   2       4  7    10
  / \     / \    /    \
                      None
None None None """
Standart

İkili Ağaç (Binary Tree) Oluşturma

#Düğüm oluşturma
class Node():

    def __init__(self,data): #ikili ağaç düğümü 3 kısımdan oluşur
        self.data = data     # 1.Düğümde bulunan değer
        self.left = None     # 2.Düğüm solundaki düğümün  adresi
        self.right= None     # 3.Düğümün sağındaki düğümün adresi



if __name__=='__main__':

    root = Node(5)         #kök düğüm 5 ekle
    root.left = Node(3)    #kök düğümün soluna 3 ekle
    root.left.left = Node(2) # kök düğümün solunun soluna 2 ekle
    root.left.right = Node(4) #kök düğümün solunun sağına 4 ekle
    root.right = Node(9)      # kök düğümün sağına 9 ekle
    root.right.left = Node(7) # kök düğümün sağının soluna 7 ekle
    root.right.right = Node(10)# kök düğümün sağının sağına 10 ekle

    #Ağacının görünümü şu şekilde olur
    """
            5
         /     \
        3       9
     /    \    /  \
   2       4  7    10
  / \     / \    /    \
                      None
None None None """
Standart

Bağlı Liste(Linked List) Arama

#Düğum sınıfı
class Node():

    def __init__(self,data): # Her düğüm iki bölümden oluşur 1.veri 2.işaretçi
        self.data = data     # Düğüme veri atadık
        self.next = None     # Şuan duğum nesnesi tek elemanlı olduğu için işaretçi boş


#Bağlı liste sınıfı
class LinkedList():

    def __init__(self):
        self.head = None   # Her bağlı listenin bir başı vardır

    def search(self,x):
        temp = self.head

        while temp!= None:
            if temp.data==x:
                return True
            temp = temp.next
        return False



if __name__=='__main__':

    lliste = LinkedList()

    lliste.head = Node(5)
    second = Node(8)
    third =  Node(10)

    lliste.head.next= second
    second.next=third


    print(lliste.search(100)) # 100 değerini listede ara
Standart

Bağlı Listede (Linked List) Düğüm Sayısı Bulma

#Düğum sınıfı
class Node():

    def __init__(self,data): # Her düğüm iki bölümden oluşur 1.veri 2.işaretçi
        self.data = data     # Düğüme veri atadık
        self.next = None     # Şuan duğum nesnesi tek elemanlı olduğu için işaretçi boş


#Bağlı liste sınıfı
class LinkedList():

    def __init__(self):
        self.head = None   # Her bağlı listenin bir başı vardır

    def countList(self):
        temp = self.head
        count =0

        while temp:
            count +=1
            temp = temp.next
        return count


if __name__=='__main__':

    lliste = LinkedList()

    lliste.head = Node(5)
    second = Node(8)
    third =  Node(10)

    lliste.head.next= second
    second.next=third


    print("Listenin Eleman sayısı:",lliste.countList())
Standart