python学习之相关练习

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值