python链表实现栈_python基于链表实现栈与队列

1)实现栈

代码实现:

class Node():

def __init__(self,val,next=None):

self.val=val

self.next=next

class Stack():

def __init__(self):

self.head=None

self.N=0

def isEmpty(self):

return self.N==0

def size(self):

return self.N

def push(self, item):

rear=self.head

self.head=Node(item)

self.head.item=item

self.head.next=rear

self.N+=1

def pop(self):

if  self.N==0:

print("the stack'length is zero")

else:

item=self.head.val

self.head=self.head.next

return item

def top(self):

if self.N==0:

print("the stack'length is zero")

else:

return self.first.val

my_stack = Stack()

my_stack.pop()

my_stack.push('h')

my_stack.push('a')

print(my_stack.pop())

print(my_stack.pop())

输出:

a

h

2)实现队列

代码实现:

class Node():

def __init__(self,item=None,next=None):

self.item=item

self.next=next

class _LinkListQueue(object):

def __init__(self):

self.first=None

self.last=None

self.N=0

def isEmpty(self):

return self.first is None

def size(self):

return self.N

def enqueue(self,item):

node=Node(item)

if self.isEmpty():

self.first=node

else:

self.last.next=node

self.last=node

self.N+=1

def dequeue(self):

if self.first is None:

print( "this queue is empty")

item = self.first.item

self.first=self.first.next

self.N-=1

return item

def __iter__(self):

return self.first

my_queue =_LinkListQueue()

my_queue.enqueue('h')

my_queue.enqueue('a')

print(my_queue.dequeue())

print(my_queue.dequeue())

输出:h

a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值