Back

Explore Courses Blog Tutorials Interview Questions
0 votes
3 views
in Python by (16.4k points)

I'm attempting to execute a simple stack with Python utilizing arrays. I was wondering whether somebody could tell me where I went wrong with my code. 

class myStack:

     def __init__(self):

         self = []

     def isEmpty(self):

         return self == []

     def push(self, item):

         self.append(item)

     def pop(self):

         return self.pop(0)

     def size(self):

         return len(self)

    s = myStack()

    s.push('1')

    s.push('2')

    print(s.pop())

    print s

1 Answer

0 votes
by (26.4k points)

I also corrected a couple of issues underneath. Likewise, a 'stack', in abstract programming terms, is generally an assortment where you add and eliminate from the top, however, the manner in which you implemented it, you're adding to the top and eliminating from the base, which makes it a queue.

class myStack:

     def __init__(self):

         self.container = []  # You don't want to assign [] to self - when you do that, you're just assigning to a new local variable called `self`.  You want your stack to *have* a list, not *be* a list.

     def isEmpty(self):

         return self.size() == 0   # While there's nothing wrong with self.container == [], there is a builtin function for that purpose, so we may as well use it.  And while we're at it, it's often nice to use your own internal functions, so behavior is more consistent.

     def push(self, item):

         self.container.append(item)  # appending to the *container*, not the instance itself.

     def pop(self):

         return self.container.pop()  # pop from the container, this was fixed from the old version which was wrong

     def peek(self):

         if self.isEmpty():

             raise Exception("Stack empty!")

         return self.container[-1]  # View element at top of the stack

     def size(self):

         return len(self.container)  # length of the container

     def show(self):

         return self.container  # display the entire stack as list

s = myStack()

s.push('1')

s.push('2')

print(s.pop())

print(s.show())

Are you interested to learn the concepts of Python? Join the python training course fast!

Browse Categories

...