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