zoukankan      html  css  js  c++  java
  • python 手写队列

    #encoding=utf8
    class MQueue:
        def __init__(self):
            self.data = []
    
        def get(self):
            if self.data.__len__()>0:
                return self.data.pop()
            else:
                return None
    
        def put(self, item):
            if not self.isExist(item):
                self.data.insert(0, item)
    
        def remove(self, obj, attr='name'):#移除某个属性等于obj的所有对象
            while -1 != self.indexOf(obj):
                self.data.pop(self.indexOf(obj))
    
        def size(self):
            return self.data.__len__()
    
        def isEmpty(self):
            return 0 == self.data.__len__()
    
        def indexOf(self, obj, attr='name'):#查询对象indexOf(obj),查询元素indexOf(obj.str,obj.attr)
            isDict = isinstance(obj, dict)
            for i in range(self.data.__len__()):
                if (isDict and self.data[i] == obj) or (not isDict and obj == self.data[i][attr]):
                    return i
            return -1
    
        def isExist(self, obj):
            return not -1 == self.indexOf(obj)
    
        def getData(self):
            return self.data
    
    if __name__ == '__main__':
        q = MQueue()
        q.put({'name': '路人甲'})
        q.put({'name': '路人1'})
        q.put({'name': '路人2'})
        q.put({'name': '路人3'})
        q.put({'name': '路人甲'})
        print(q.size())
        q.remove('路人甲')
        print(q.size())
        print(q.isExist('路人1'))
  • 相关阅读:
    个人阅读2
    代码复审
    PairProject 总结
    Pairproject 移山之道 阅读随笔和一些问题
    M1/M2个人总结
    团队项目个人总结
    个人阅读作业2
    代码互审
    《移山之道》读后感
    Individual Project
  • 原文地址:https://www.cnblogs.com/lurenjia1994/p/9604987.html
Copyright © 2011-2022 走看看