0% found this document useful (0 votes)
3 views3 pages

LL BT Merged

Uploaded by

namitalaldeo03
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

LL BT Merged

Uploaded by

namitalaldeo03
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

linked list

class Node:
def __init__(self, data):
self.data = data
self.next = None

# Linked List class


class LinkedList:
def __init__(self):
self.first = None
self.last = None # Keep reference to the last node

# Insert n nodes with user input


def insert(self, n):
for i in range(1, n + 1):
data = int(input(f"Enter value for node {i}: "))
new_node = Node(data)
if self.first is None: # first node
self.first = new_node
self.last = new_node
else: # attach directly using last reference
self.last.next = new_node
self.last = new_node

# Display all nodes


def display(self):
temp = self.first
while temp:
print(temp.data, end=" -> ")
temp = temp.next
print("None")

ll = LinkedList()
n = int(input("How many nodes do you want to insert? "))
ll.insert(n)
print("Linked List:")
ll.display()
Binary tree
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None

# BST class
class BST:
def __init__(self):
self.root = None

# Non-recursive insert
def insert(self, data):
new_node = Node(data)

if self.root is None:
self.root = new_node
return

current = self.root
parent = None

while current:
parent = current
if data < current.data:
current = current.left
else:
current = current.right

if data < parent.data:


parent.left = new_node
else:
parent.right = new_node

# Create BST by taking input from user


def create_bst(self):
n = int(input("How many values do you want to insert? "))
for i in range(1, n + 1):
value = int(input(f"Enter value {i}: "))
self.insert(value)
# In-order Traversal (recursive)
def inorder(self, root):
if root:
self.inorder(root.left)
print(root.data, end=" ")
self.inorder(root.right)

# Main code
bst = BST()
bst.create_bst()

print("\nIn-order Traversal of BST:")


bst.inorder(bst.root)
print()

You might also like