Это мой код для моего кругового стека.Я хочу убедиться, что пользователь не может ввести повторяющееся значение в стек.
CircularStack = [None] * 10
headPosition = tailPosition = 0
def AddingItem(CircularStack, tailPosition, NewItem, headPosition):
CircularStack[tailPosition] = NewItem
printQue(CircularStack)
CircularLength = len(CircularStack)
PlaceToChange = CircularStack[tailPosition] = NewItem
DelOrAddItem = input("Do you want to delete an item?")
if DelOrAddItem == "Y" or DelOrAddItem == "y":
DeleteItemFromQueue(CircularStack, tailPosition, NewItem, headPosition)
else:
if tailPosition == len(CircularStack)-1:
tailPosition = 0
AdditionItems = int(input("Add Number to Queue"))
if headPosition == tailPosition:
print("STACK FULL")
else:
AddingItem(CircularStack, tailPosition, AdditionItems, headPosition)
else:
tailPosition = tailPosition + 1
AdditionItems = int(input("Add Number to Queue"))
if headPosition == tailPosition:
print("STACK FULL")
else:
AddingItem(CircularStack, tailPosition, AdditionItems, headPosition)
def DeleteItemFromQueue(CircularStack, tailPosition, NewItem, headPosition):
if headPosition == tailPosition:
print("STACK FULL")
else:
if headPosition == len(CircularStack):
headPosition = 0
else:
headPosition = headPosition + 1
AddingItem(CircularStack, tailPosition, NewItem, headPosition)
def printQue(CircularStack):
print(CircularStack)
FirstItemInQueue = int(input("Start Circular Queue with first input"))
AddingItem(CircularStack, tailPosition, FirstItemInQueue, headPosition)