# Function to generate binary numbers without a queue
def generate_binary_no_queue(n):
result = []
for num in range(1, n + 1):
binary = ""
temp = num
while temp > 0:
binary = str(temp % 2) + binary
temp //= 2
result.append(binary)
return result
# Test case
n = 5
print("Binary numbers from 1 to", n, ":", generate_binary_no_queue(n))
['1', '10', '11', '100', '101']
from queue import Queue
# Function to generate binary numbers using a queue
def generate_binary_with_queue(n):
q = Queue()
q.put("1")
result = []
for _ in range(n):
current = q.get()
result.append(current)
q.put(current + "0")
q.put(current + "1")
return result
# Test case
n = 5
print("Binary numbers from 1 to", n, ":", generate_binary_with_queue(n))
['1', '10', '11', '100', '101']