美文网首页
(一) python 实现数据结构之栈(stack)篇

(一) python 实现数据结构之栈(stack)篇

作者: 徐大徐 | 来源:发表于2019-10-09 18:18 被阅读0次

    一.栈结构(stack)

    栈类型数据结构相当于一个容器,其特点是先进后出,因此栈具有以下几个功能:压栈即入栈,出栈,计算元素个数,返回栈顶元素,判空等操作。

    stack.JPG

    因此将讲个功能命名为:push(),pop(),size(),peek(),is_empty()运用python代码实现:

    #-*-code = utf-8 -*-
    class stack(object):
            def __init__(self):
                    self.items = []
            def is_empty(self):
                    return self.items == []
            def push(self,item):
                    #压栈
                    self.items.append(item)
            def pop(self):
                    ''' 弹出或删除一个元素'''
                  return self.items.pop()
            def size(self):
                    return len(self.items)
            def peek(self):
                    '''返回栈顶元素'''
                    return self.items[len(self.items)-1]
            def delete(self):
                    for i in range(0,len(self.items)):
                            self.items.pop()
                            #del self.items
    if __name__ == '__main__':
            sta = stack()
            for i in range(0,10):
                    sta.push(i)
            print("the size of the stack is :%d"%(sta.size()))
            a = [1,2,3,4,5,6]
            a.pop()
            #pop()本身就是弹出栈顶元素
            #加入下标后弹出指定位置元素
            print(a)
            sta.push(11)
            print("the size of the stack is :%d"%(sta.size()))
            print(sta.peek())
            sta.pop()
            print("the size of the stack is :%d"%(sta.size()))
            print(sta.is_empty())
            sta.delete()
            print(sta.is_empty())
            print(sta.size())
    

    这种写法有个问题就是在pop()功能的地方,这里本身pop的功能是在列表中删除列表的最后一个元素,也可以删除指定下标位置的元素pop(i),因此为了满足本次stack的功能我们这里不使用删除指定下标元素。

    相关文章

      网友评论

          本文标题:(一) python 实现数据结构之栈(stack)篇

          本文链接:https://www.haomeiwen.com/subject/tznductx.html