class Node(object):
def __init__(self, data=None):
self.data = data
self.next = None
def __str__(self):
return "数据:{data},地址:{next}".format(data=self.data, next=id(self.next))
class LinkedStack(object):
def __init__(self):
self._length = 0
self._head = None
def clear(self):
self._head = None
self._length = 0
def empty(self):
return self._head is None
def get(self):
if self.empty():
raise Exception("栈为空")
return self._head.data
def push(self, data):
new_node = Node(data)
if not self.empty():
new_node.next = self._head
self._head = new_node
self._length += 1
def pop(self):
if self.empty():
raise Exception("栈为空")
data = self._head.data
self._head = self._head.next
self._length -= 1
return data
def length(self):
return self._length
if __name__ == '__main__':
stack = LinkedStack()
print(stack.empty())
stack.push(4)
stack.push(3)
stack.push(2)
print(stack.length())
stack.push(1)
print(stack.empty())
print(stack.length())
print(stack.get())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
【数据结构连载一栈】【链式存储栈】python
最新推荐文章于 2024-10-03 09:02:12 发布