欢迎访问宙启技术站
智能推送

Python函数实现栈结构及其基本操作

发布时间:2023-06-12 07:53:22

栈结构是一种先进后出(LIFO)的数据结构,可以用函数来实现。在Python中,可以使用列表或者链表来实现栈结构。

列表实现栈结构:

首先定义一个空列表来表示栈,然后定义以下操作:

1. push(item):将元素压入栈中

2. pop():从栈中弹出(删除)并返回栈顶元素

3. top():返回栈顶元素,但不弹出

4. is_empty():判断栈是否为空

5. size():返回栈的大小

下面是实现栈结构的代码:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def top(self):
        return self.items[-1]

    def is_empty(self):
        return self.items == []

    def size(self):
        return len(self.items)

使用链表来实现栈结构:

链表的头部表示栈顶元素,每个节点包含下一个节点的指针和存储的元素。定义以下操作:

1. push(item):将元素压入栈中

2. pop():从栈中弹出(删除)并返回栈顶元素

3. top():返回栈顶元素,但不弹出

4. is_empty(): 判断栈是否为空

5. size(): 返回栈的大小

下面是使用链表实现栈的代码:

class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

class Stack:
    def __init__(self):
        self.top = None

    def push(self, item):
        new_node = Node(item)
        new_node.next = self.top
        self.top = new_node

    def pop(self):
        if self.is_empty():
            return None
        else:
            popped_node = self.top
            self.top = self.top.next
            popped_node.next = None
            return popped_node.value

    def top(self):
        if self.is_empty():
            return None
        else:
            return self.top.value

    def is_empty(self):
        return self.top == None

    def size(self):
        count = 0
        current = self.top
        while current:
            count += 1
            current = current.next
        return count

以上是Python函数实现栈结构及其基本操作的思路,通过编写相应的代码可以实现具体的栈结构,提高程序开发效率和数据结构操作能力。