From 20e09c3ec2021edf7e6cfd85299544c651012919 Mon Sep 17 00:00:00 2001
From: Dylan Buchi <devybuchi@gmail.com>
Date: Sat, 23 Oct 2021 06:56:58 -0300
Subject: [PATCH] [mypy] Add type annotations for linked queue in data
 structures (#5533)

* [mypy] Add/fix type annotations for linked queue in data_structures

* add return type annotation to __iter__

* Add more readable syntax
---
 data_structures/queue/linked_queue.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/data_structures/queue/linked_queue.py b/data_structures/queue/linked_queue.py
index 8526ad311..21970e7df 100644
--- a/data_structures/queue/linked_queue.py
+++ b/data_structures/queue/linked_queue.py
@@ -1,11 +1,13 @@
 """ A Queue using a linked list like structure """
-from typing import Any
+from __future__ import annotations
+
+from typing import Any, Iterator
 
 
 class Node:
     def __init__(self, data: Any) -> None:
-        self.data = data
-        self.next = None
+        self.data: Any = data
+        self.next: Node | None = None
 
     def __str__(self) -> str:
         return f"{self.data}"
@@ -39,9 +41,10 @@ class LinkedQueue:
     """
 
     def __init__(self) -> None:
-        self.front = self.rear = None
+        self.front: Node | None = None
+        self.rear: Node | None = None
 
-    def __iter__(self):
+    def __iter__(self) -> Iterator[Any]:
         node = self.front
         while node:
             yield node.data
@@ -87,7 +90,7 @@ class LinkedQueue:
         """
         return len(self) == 0
 
-    def put(self, item) -> None:
+    def put(self, item: Any) -> None:
         """
         >>> queue = LinkedQueue()
         >>> queue.get()