1.用面向对象的方式实现堆栈的数据结构(后进先出)
脚本编写如下:
class Stack(object): #将栈定义为一个类
def __init__(self,stack):
self.stack = stack
def manystack(self,*args): #进栈方法
self.stack.extend(args)
def popstack(self): #出栈方法
if not self.kongqueue():
return self.stack.pop()
else:
return None
def viewstack(self): #查看栈元素方法
for i in self.stack:
print i,
def topstack(self): #查看栈顶元素饭方法
if not self.kongqueue():
return self.stack[-1]
else:
return None
def kongqueue(self): #查看栈是否为空
return self.stack == []
s = Stack([1]) #给栈中传入一个元素
s.manystack(1,2,3) #进栈元素
s.viewstack() #显示栈中元素
s.topstack() #查看栈中最上面的元素
print s.topstack() #将栈中最上面的元素打印出来
s.popstack() #出栈,默认删除最上面(最后)一个元素
print "\n"
s.viewstack() #再次查看栈元素
脚本执行效果:
1 1 2 3 3
1 1 2
2.用面向对象的方式实现队列的数据结构(先进先出)
脚本编写如下:
class Queue(object): #将队列定义为一个类
def __init__(self,queue):
print "welcome!"
self.queue = queue
def enqueue(self,item): #进入队列的方法(只能传一个值)
self.queue.append(item)
def manyEnqueue(self,*args): #进入队列的方法(可传多个值)
self.queue.extend(args)
def outqueue(self): #出队列方法
if not self.isEmpty():
return self.queue.pop(0)
else:
return None
def showqueue(self): #查看队列方法
for i in self.queue:
print i,
def isEmpty(self): #查看队列是否为空
return self.queue == []
s = Queue([1,2,3]) #给队列中传入元素
s.enqueue(2) #进入队列的元素
s.manyEnqueue("test","ok") #进入队列元素
s.showqueue() #显示队列中的元素
s.outqueue() #出队列,默认删除最后面的元素(先进先出)
print
s.showqueue() #再次显示队列中的元素
脚本执行效果:
welcome!
1 2 3 2 test ok
2 3 2 test ok