

{"id":145791,"date":"2025-07-11T12:45:31","date_gmt":"2025-07-11T07:15:31","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=145791"},"modified":"2025-07-11T12:45:31","modified_gmt":"2025-07-11T07:15:31","slug":"traffic-light-simulation-in-dsa-python","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/","title":{"rendered":"DSA Python Project &#8211; Traffic Light Simulation"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Project: Traffic Light Simulation Using Queue Linked List \r\n# ----------------------------------------------------------\r\n#  Features:\r\n#  Add vehicles to queue (simulating arrival)\r\n#  Process vehicles when the signal turns green\r\n#  Show vehicles in the queue\r\n#  Count waiting vehicles\r\n#  Clear All Vehicles (Emergency Clear Signal)\r\n# Search for a Vehicle by Number\r\n# Display First and Last Vehicle in Queue\r\n# Log of Passed Vehicles\r\n\r\n\r\nclass Vehicle:                           # Node \r\n    def __init__(self, number):\r\n        self.number = number\r\n        self.next = None\r\n\r\nclass TrafficQueue:\r\n    def __init__(self):\r\n        self.front = None\r\n        self.rear = None\r\n        self.passed_log = None\r\n   # Create Linked List\r\n    def arrive_vehicle(self, number):\r\n        temp = Vehicle(number)\r\n        if self.rear is None:\r\n            self.front = self.rear = temp\r\n        else:\r\n            self.rear.next = temp\r\n            self.rear = temp\r\n        print(f\"\\n Vehicle {number} arrived at the signal.\")\r\n\r\n# Create back up of  Linked List\r\n    def log_passed_vehicle(self, number):\r\n        temp = Vehicle(number)\r\n        if self.passed_log is None:\r\n            self.passed_log = temp\r\n        else:\r\n            ptr = self.passed_log\r\n            while ptr.next:\r\n                ptr = ptr.next\r\n            ptr.next = temp\r\n\r\n    def pass_vehicle(self):\r\n        if self.front is None:\r\n            print(\"\\n No vehicles waiting at the signal.\")\r\n            return\r\n        temp = self.front\r\n        print(f\"\\n Vehicle {temp.number} passed the signal.\")\r\n        self.log_passed_vehicle(temp.number)\r\n        self.front = self.front.next\r\n        if self.front is None:\r\n            self.rear = None\r\n            del temp\r\n\r\n    def display_queue(self):\r\n        if self.front is None:\r\n            print(\"\\n No vehicles in the queue.\")\r\n            return\r\n        print(\"\\n Vehicles at signal:\")\r\n        temp = self.front\r\n        while temp!=None:\r\n            print(f\" {temp.number}\")\r\n            temp = temp.next\r\n\r\n    def count_queue(self):\r\n        count = 0\r\n        temp = self.front\r\n        while temp!=None:\r\n            count += 1\r\n            temp = temp.next\r\n        print(f\"\\n Total vehicles waiting: {count}\")\r\n\r\n    def clear_queue(self):\r\n        while self.front!=None:\r\n            temp = self.front\r\n            self.front = self.front.next\r\n            del temp\r\n        self.rear = None\r\n        print(\"\\n All vehicles cleared from the signal!\")\r\n\r\n    def search_vehicle(self, number):\r\n        temp = self.front\r\n        while temp!=None:\r\n            if temp.number == number:\r\n                print(f\"\\n Vehicle {number} is currently in the queue.\")\r\n                return\r\n            temp = temp.next\r\n        print(f\"\\n Vehicle {number} not found in queue.\")\r\n\r\n    def show_first_and_last(self):\r\n        if not self.front:\r\n            print(\"\\n  No vehicles in the queue.\")\r\n            return\r\n        print(f\"\\n First Vehicle: {self.front.number}\")\r\n        print(f\" Last Vehicle: {self.rear.number}\")\r\n\r\n    def show_passed_log(self):\r\n        if not self.passed_log:\r\n            print(\"\\n No vehicles have passed the signal yet.\")\r\n            return\r\n        print(\"\\n Passed Vehicles Log:\")\r\n        temp = self.passed_log\r\n        while temp:\r\n            print(f\" {temp.number}\")\r\n            temp = temp.next\r\n\r\n\r\ndef menu():\r\n    tq = TrafficQueue()\r\n    while True:\r\n        print(\"\\n ========== Traffic Light Simulation ==========\")\r\n        print(\"Vehicle Arrives\")\r\n        print(\"Signal Turns Green (Vehicle Passes)\")\r\n        print(\"Show Vehicles in Queue\")\r\n        print(\"Count Waiting Vehicles\")\r\n        print(\"Emergency Clear All Vehicles\")\r\n        print(\"Search Vehicle by Number\")\r\n        print(\"Show First and Last Vehicle\")\r\n        print(\"Show Passed Vehicle Log\")\r\n        print(\"Exit\")\r\n        choice = input(\"Choose an option: \")\r\n        if choice == \"1\":\r\n            number = input(\" Enter vehicle number: \")\r\n            tq.arrive_vehicle(number)\r\n        elif choice == \"2\":\r\n            tq.pass_vehicle()\r\n        elif choice == \"3\":\r\n            tq.display_queue()\r\n        elif choice == \"4\":\r\n            tq.count_queue()\r\n        elif choice == \"5\":\r\n            tq.clear_queue()\r\n        elif choice == \"6\":\r\n            number = input(\" Enter vehicle number to search: \")\r\n            tq.search_vehicle(number)\r\n        elif choice == \"7\":\r\n            tq.show_first_and_last()\r\n        elif choice == \"8\":\r\n            tq.show_passed_log()\r\n        elif choice == \"9\":\r\n            print(\"\\n Exiting simulation. Goodbye!\")\r\n            break\r\n        else:\r\n            print(\"\\n Invalid option. Try again.\")\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    menu()<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 # Project: Traffic Light Simulation Using Queue Linked List # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- # Features: # Add vehicles to queue (simulating arrival) # Process vehicles when the signal turns green # Show vehicles in&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32847],"tags":[32853,32922,34829,34867,32848,34813,34869,34866,34865,34868],"class_list":["post-145791","post","type-post","status-publish","format-standard","hentry","category-dsa-python-tutorials","tag-dsa-python","tag-dsa-python-practical","tag-dsa-python-project","tag-dsa-python-traffic-light-simulation","tag-dsa-using-python","tag-traffic-light-simulation","tag-traffic-light-simulation-in-dsa-python","tag-traffic-light-simulation-project","tag-traffic-light-simulation-project-in-dsa-python","tag-traffic-light-simulation-using-dsa-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DSA Python Project - Traffic Light Simulation - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DSA Python Project - Traffic Light Simulation - DataFlair\" \/>\n<meta property=\"og:description\" content=\"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&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-11T07:15:31+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DSA Python Project - Traffic Light Simulation - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/","og_locale":"en_US","og_type":"article","og_title":"DSA Python Project - Traffic Light Simulation - DataFlair","og_description":"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&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-07-11T07:15:31+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"DSA Python Project &#8211; Traffic Light Simulation","datePublished":"2025-07-11T07:15:31+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["dsa python","dsa python practical","dsa python project","dsa python traffic light simulation","dsa using python","traffic light simulation","traffic light simulation in dsa python","traffic light simulation project","traffic light simulation project in dsa python","traffic light simulation using dsa python"],"articleSection":["DSA using Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/","url":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/","name":"DSA Python Project - Traffic Light Simulation - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-07-11T07:15:31+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/traffic-light-simulation-in-dsa-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-python-tutorials\/"},{"@type":"ListItem","position":3,"name":"DSA Python Project &#8211; Traffic Light Simulation"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"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.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=145791"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145791\/revisions"}],"predecessor-version":[{"id":145805,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145791\/revisions\/145805"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=145791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=145791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=145791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}