一:利用Python实现栈的功能:
class Stack(object):
def __init__(self, size):
self.size = size
self.stack = []
self.top = -1
def push(self, x):
if self.is_full():
raise Exception("Stack Is Full")
else:
self.stack.append(x)
self.top += 1
def pop(self):
if self.is_empty():
raise Exception('Stack Is Empty')
else:
self.stack.pop()
self.top -= 1
def show(self):
print(self.stack)
def is_full(self):
return self.top + 1 == self.size
def is_empty(self):
return self.top == -1
S = Stack(15)
for i in range(10):
S.push(i)
S.show()
for i in range(5):
S.pop()
S.show()
二: 利用Python实现队列的功能:
class Queue(object):
def __init__(self, size):
self.size = size
self.queue = []
self.front = -1
self.end = -1
def in_queue(self, x):
if self.is_full():
raise Exception('Queue Is Full')
else:
self.queue.append(x)
self.end += 1
def out_queue(self):
if self.is_empty():
raise Exception('Queue Is Empty')
else:
self.queue.pop(0)
self.front += 1
def is_full(self):
return (self.end - self.front + 1) == self.size
def is_empty(self):
return self.front == self.end
def show(self):
print(self.queue)
Q = Queue(15)
for i in range(10):
Q.in_queue(i)
Q.show()
for i in range(5):
Q.out_queue()
Q.show()