我只能将两个值推送到堆栈数组上?

2024-04-23 19:23:35 发布

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

在使用myPush()函数时,只能将两个值推送到已创建的堆栈数组中。我之所以需要这样做,是因为我不允许使用内置的堆栈函数。另外,我必须使用阵列而不是照明。谢谢您。你知道吗

在使用myPush()函数时,只能将两个值推送到已创建的堆栈数组中。我之所以需要这样做,是因为我不允许使用内置的堆栈函数。另外,我必须使用阵列而不是照明。非常感谢。你知道吗

class Stack:

    def __init__(self, data):
        if data > 0:
            self.stack = [0] * data
            self.top = -1
            self.stack[self.top] = self.stack[-1]
        elif data <= 0:
            self.stack = [0] * 10
            self.top = -1

    def showStack(self):
        for i in self.stack:
            print(i, end=" ")
        return 

    def isEmpty(self):
        return self.stack == []

    def myEmpty(self): #complete this function
        return # just a placeholder

    def push(self, data):
        self.stack.append(data)

    def myPush(self, data):
        if data == 0:
            print("You did not enter a value.")
        elif self.sizeStack() <= 10:
            current = self.stack[stack.top]
            self.stack[stack.top] = data
            self.stack[stack.top - 1] = current


    def pop(self):
        data = self.stack[-1]
        del self.stack[-1]
        return data

    def myPop(self): #complete this function
        return # just a placeholder


    def myPeek(self): 
        temp = self.top
        return temp

    def sizeStack(self):
        return len(self.stack)

    userVal = int(input("Enter the size of the stack: "))
    stack = Stack(userVal)
    while True:
    print('\n1 display the stack')
    print('2 add a value to the stack')
    print('3 check the value at the top of the stack')
    print('4 remove the value at the top of the stack')
    print('5 check if the stack is empty')
    print('99 quit')

    option = int(input("Enter your choice: "))

    if option == 1:
        stack.showStack()
    elif option == 2:
        temp = int(input("Enter a number to add to the stack: "))
        stack.myPush(temp)
    elif option == 3:
        print(stack.peek())


    elif option == 99:
        break
    else:
        print('Wrong option')
        print

Tags: the函数selfdatareturnifvaluestack
1条回答
网友
1楼 · 发布于 2024-04-23 19:23:35

尝试定义一个映射到列表的自定义函数。在这里阅读customization

class stack:
    def __init__(self, data):
        self.stack = [0] * data
        self.top = -1
        # whatever you want to do to init the list

    def __str__(self): # replaces your showstack function now just use print(stack)
        return self.stack
    def __iter__(self): # creates an iterator you can use
        return iter(self.stack)
    def __len__(self): # replaces your sizestack function
        return len(self.stack) 

基本上只是调整你需要的方法。你知道吗

相关问题 更多 >