美文网首页
栈与队列的list实现

栈与队列的list实现

作者: Crystalajj | 来源:发表于2017-11-03 21:10 被阅读60次

list函数用法总结

  • append()
    把新元素加到list的末尾
  • insert(index, item)
    item添加到位于索引号index的位置
  • pop()
    删除掉list的最后一个元素,并打印这个元素
  • pop(index)
    删除掉位于索引号index位置的元素并打印这个元素
    Note:list为有序集合,所包含的元素并不要求必须是同一种数据类型

栈(stack)具有后入先出(Last In First Out)特点。

#-*-coding=utf-8-*-
#基于list的栈实现
class stack:
    def __init__(self):
        self.items = []
    def push(self,item): #添加元素
        return self.items.append(item)
    def is_empty(self): 
        return len(self.items)==0
    def pop(self): #删除栈首元素并返回该元素
        if self.is_empty():
            raise StackUnderflow('in pop')
        else:
            print self.items.pop()
    def peek(self): #查看栈首元素
        if self.is_empty():
            print "Empty Stack"
        else:
            return self.items[len(self.items)-1]
    def get_size(self): #获取栈的大小
        return len(self.items)
    def clear(self): #清空栈
        self.items = []
#创建栈对象
s = stack()
s.push('ab')
print s.get_size()
s.clear()
print s.get_size()

队列

队列(queue)具有先进先出(First In First Out)特点。

#-*-coding=utf-8-*-
#基于list的队列实现
class queue:
    def __init__(self):
        self.items = []
    def enqueue(self,item): #在list首插入元素
        return self.items.insert(0, item)
    def is_empty(self):
        return len(self.items)==0
    def dequeue(self): #在list尾删除元素并打印该元素
        if self.is_empty():
            raise queueUnderflowError('in dequeue')
        else:
            print self.items.pop()
    def get_size(self): #获取队列的大小
        return len(self.items)
    def get_queue(self): #获取队列的现有元素
        print self.items
#创建队列对象
q = queue()
q.enqueue(1)
q.enqueue(2)
print q.get_size()
q.get_queue()
q.enqueue(3)
q.get_queue()
q.dequeue()
q.get_queue()

相关文章

网友评论

      本文标题:栈与队列的list实现

      本文链接:https://www.haomeiwen.com/subject/anlxmxtx.html