python代码改写<大话数据结构>:栈的链式存储结构

2021/5/22 20:29:27

本文主要是介绍python代码改写<大话数据结构>:栈的链式存储结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# 栈元素
class Node:
    def __init__(self, item):
        # 元素域
        self.elem = item
        # 链接域
        self.next = None

class Stack:
    # 栈顶指针
    def __init__(self):
        self.head = None

    # 链表的头部作为栈顶
    # 添加一个元素,进栈操作就是在链表头部插入元素
    def push(self, item):
        node = Node(item)
        node.next = self.head
        self.head = node

    # 弹出栈顶元素,即链表删除头部节点
    def pop(self):
        cur = self.head
        self.head = cur.next
        return cur.elem

    # 返回栈顶元素,查看头部节点的值
    def peek(self):
        return self.head if self.is_empty() else self.head.elem

    # 判断栈是否为空
    def is_empty(self):
        return self.head == None

    # 返回栈的元素个数
    def size(self):
        count = 1
        if self.is_empty():
            return 0
        cur = self.head
        # 遍历到最后一个元素
        while cur.next is not None:
            count += 1
            cur = cur.next
        return count



if __name__ == '__main__':
    s = Stack()
    print(s.is_empty())
    s.push(10)
    s.push(20)
    s.push(30)
    print(s.size())
    print(s.peek())
    print(s.pop())
    print(s.pop())



这篇关于python代码改写<大话数据结构>:栈的链式存储结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程