Python:单链表实现栈操作

单链表实现栈操作,规定栈顶在链表的头部

代码如下:

# -*- coding:utf-8 -*- 
class LinkedStack:
	class Node:
		def __init__(self,element,next):
			self.element = element
			self.next = next
		
	#栈方法
	def __init__(self):
		self.head = None
		self.size = 0
	
	def _len_(self):
		return self.size
	
	def is_empty(self):
		return self.size == 0
	
	def push(self, e):
		self.head = self.Node(e,self.head)	
		#上一条语句喝下面3条语句等价,下面3条语句好理解	
		# ~ p = self.Node(e,self.head)
		# ~ p.next = self.head
		# ~ self.head = p		
		self.size += 1	
	
	def top(self):
		if self.is_empty():
			print('Stack is empty')
		return self.head.element
	
	def pop(self):
		if self.is_empty():
			print('Stack is empty')
		answer = self.head.element
		self.head = self.head.next
		self.size -= 1
		
		return answer		
		
if __name__=='__main__':
	S = LinkedStack()
	S.push(1)
	S.push(2)
	S.push(3)		
	S.push(4)
	S.push(5)
	S.pop()
	S.pop()
	S.push(24)
	print(S.head.element)
	print(S.head.next.element)
	print(S.head.next.next.element)
	print(S.head.next.next.next.element)

测试结果如下:
在这里插入图片描述

发布了15 篇原创文章 · 获赞 6 · 访问量 1441

猜你喜欢

转载自blog.csdn.net/qq_39783265/article/details/100983675