如何防止循环堆栈中的重复值?

2024-09-24 22:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的循环堆栈代码。我想确保用户不能在堆栈中输入重复的值

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)

Tags: toinputlenifdefelseintprint
1条回答
网友
1楼 · 发布于 2024-09-24 22:25:03
def AddingItem(CircularStack, tailPosition, NewItem, headPosition):
    if NewItem in CircularStack:
        #item already exists; return without doing anything.
        return
    #rest of function goes here

或者,循环直到值不在列表中

def AddingItem(CircularStack, tailPosition, NewItem, headPosition):
    while NewItem in CircularStack:
        NewItem = int(input("Item already exists. Please enter a different value: "))
    #rest of function goes here

相关问题 更多 >