DSA Python Project – Traffic Light Simulation
by DataFlair Team
Program 1
# Project: Traffic Light Simulation Using Queue Linked List
# ----------------------------------------------------------
# Features:
# Add vehicles to queue (simulating arrival)
# Process vehicles when the signal turns green
# Show vehicles in the queue
# Count waiting vehicles
# Clear All Vehicles (Emergency Clear Signal)
# Search for a Vehicle by Number
# Display First and Last Vehicle in Queue
# Log of Passed Vehicles
class Vehicle: # Node
def __init__(self, number):
self.number = number
self.next = None
class TrafficQueue:
def __init__(self):
self.front = None
self.rear = None
self.passed_log = None
# Create Linked List
def arrive_vehicle(self, number):
temp = Vehicle(number)
if self.rear is None:
self.front = self.rear = temp
else:
self.rear.next = temp
self.rear = temp
print(f"\n Vehicle {number} arrived at the signal.")
# Create back up of Linked List
def log_passed_vehicle(self, number):
temp = Vehicle(number)
if self.passed_log is None:
self.passed_log = temp
else:
ptr = self.passed_log
while ptr.next:
ptr = ptr.next
ptr.next = temp
def pass_vehicle(self):
if self.front is None:
print("\n No vehicles waiting at the signal.")
return
temp = self.front
print(f"\n Vehicle {temp.number} passed the signal.")
self.log_passed_vehicle(temp.number)
self.front = self.front.next
if self.front is None:
self.rear = None
del temp
def display_queue(self):
if self.front is None:
print("\n No vehicles in the queue.")
return
print("\n Vehicles at signal:")
temp = self.front
while temp!=None:
print(f" {temp.number}")
temp = temp.next
def count_queue(self):
count = 0
temp = self.front
while temp!=None:
count += 1
temp = temp.next
print(f"\n Total vehicles waiting: {count}")
def clear_queue(self):
while self.front!=None:
temp = self.front
self.front = self.front.next
del temp
self.rear = None
print("\n All vehicles cleared from the signal!")
def search_vehicle(self, number):
temp = self.front
while temp!=None:
if temp.number == number:
print(f"\n Vehicle {number} is currently in the queue.")
return
temp = temp.next
print(f"\n Vehicle {number} not found in queue.")
def show_first_and_last(self):
if not self.front:
print("\n No vehicles in the queue.")
return
print(f"\n First Vehicle: {self.front.number}")
print(f" Last Vehicle: {self.rear.number}")
def show_passed_log(self):
if not self.passed_log:
print("\n No vehicles have passed the signal yet.")
return
print("\n Passed Vehicles Log:")
temp = self.passed_log
while temp:
print(f" {temp.number}")
temp = temp.next
def menu():
tq = TrafficQueue()
while True:
print("\n ========== Traffic Light Simulation ==========")
print("Vehicle Arrives")
print("Signal Turns Green (Vehicle Passes)")
print("Show Vehicles in Queue")
print("Count Waiting Vehicles")
print("Emergency Clear All Vehicles")
print("Search Vehicle by Number")
print("Show First and Last Vehicle")
print("Show Passed Vehicle Log")
print("Exit")
choice = input("Choose an option: ")
if choice == "1":
number = input(" Enter vehicle number: ")
tq.arrive_vehicle(number)
elif choice == "2":
tq.pass_vehicle()
elif choice == "3":
tq.display_queue()
elif choice == "4":
tq.count_queue()
elif choice == "5":
tq.clear_queue()
elif choice == "6":
number = input(" Enter vehicle number to search: ")
tq.search_vehicle(number)
elif choice == "7":
tq.show_first_and_last()
elif choice == "8":
tq.show_passed_log()
elif choice == "9":
print("\n Exiting simulation. Goodbye!")
break
else:
print("\n Invalid option. Try again.")
if __name__ == "__main__":
menu()
Tags: dsa pythondsa python practicaldsa python projectdsa python traffic light simulationdsa using pythontraffic light simulationtraffic light simulation in dsa pythontraffic light simulation projecttraffic light simulation project in dsa pythontraffic light simulation using dsa python
DataFlair Team
DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.