没事写个循环数组

新岗位需要用python,之前没写过python,用循环数组实现一个定长队列玩一下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

class CirArray:
    
    readind = 0
    writeind = 0
    fullFlag = False
    emptyFlag = True
    
    def __init__(self, queneSize):
        if isinstance(queneSize, int) and queneSize >0:
            self.MAX_SIZE = queneSize
            self.DataSet = [0 for n in range(self.MAX_SIZE)]
        else:
            raise Exception('queneSize is invalid');

    def CirPop(self):
        if self.emptyFlag:
            print 'quene is empty and get failed'
            print "the quene is:",self.DataSet
            return False

        self.readind = (self.readind + 1)%self.MAX_SIZE
        print "pop value: ",self.DataSet[self.readind]
        self.DataSet[self.readind] = 0

        if self.writeind == self.readind:
            self.emptyFlag = True
            print 'quene is empty'
        print "the quene is:",self.DataSet


    def CirPush(self, num):
        if self.fullFlag:
            print 'quene is full and insert failed'
            print "the quene is:",self.DataSet
            return False

        self.writeind = (self.writeind + 1)%self.MAX_SIZE
        self.DataSet[self.writeind] = num
        print "push success:",num
        if self.emptyFlag:
            self.emptyFlag = False

        if self.writeind == self.readind:
            self.fullFlag = True
            print 'quene is full'
        print "the quene is:",self.DataSet

testArr = CirArray(10)
testArr.CirPush(1)
testArr.CirPush(3)
testArr.CirPop()

想说一下:
1、python类中使用成员变量写self好麻烦,简直赶上php的$了
2、后面可以改进成用动态数组实现不定长队列
3、只有pop和push函数没法发挥底层数组实现的优势,可以添加随机访问的接口

就到这里了,今后要经常写python了,先混个脸熟呗

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,119评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,641评论 4 61
  • 好奇大家早上上班的车程时间是多少时间
    IVY陈阅读 1,085评论 0 0
  • 很快,假期过了半个月,我就在一日三餐和接送他们学网球去图书馆度过了。我自己的事什么都没做,有空就刷微信看小说。悦让...
    pennyzhou阅读 1,724评论 0 0

友情链接更多精彩内容