代码实现-栈、队列、双端队列
栈(Stack)
1 - 特性:先进后出的数据结构 2 - 概念:一个元素的有序集合,添加和删除元素只发生在顶端,最先添加的元素会随着新的元素添加向后移动到底端。遵循特性,这种排序原则被称为LIFO 3 - Stack():创建栈,不需要参数,返回一个空栈 4 - push(item):将一个新添项添加到栈的顶部,需要item参数但不返回任何参数 5 - pop():从栈的顶部开始删除项,不需要参数返回item(删除项),栈同时被修改 6 - peek():仅返回栈的顶部项,不需要参数,不修改栈 7 - jsEmpty():检测栈是否为空,不需要参数,返回布尔值 8 - size():返回栈中项的数量(整数),不需要整数 9 10 class Stack(): 11 def __init__(self): 12 self.items = [] 13 14 def push(self, item): 15 self.items.append(item) 16 17 def pop(self): 18 if not self.jsEmpty(): 19 return self.items.pop() 20 21 def peek(self): 22 return self.items[len(self.items) -1] 23 24 def size(self): 25 return len(self.items) 26 27 def jsEmpty(self): 28 return self.items == []
队列(Queue)
1 - 特性:先进先出 2 - 概念:一个元素的有序集合,添加元素时从底端添加至顶端,删除时从顶端移除。遵循特性,这种排序原则被称为FIFO 3 - Queue():创建新的队列,不需要参数,返回空的队列 4 - enqueue(item):向队列中添加项 5 - dequeue():从队首移除项,不需要参数返回移除的项,修改队列 6 - isEmpty():查看队列是否为空,不需要参数,返回布尔值 7 - size():返回队列中的项数(返回整数),不需要参数 8 9 class Queue(): 10 def __init__(self): 11 self.items = [] 12 13 def enqueue(self, item): 14 return self.items.append(item) 15 16 def dequeue(self): 17 if not self.isEmpty(): 18 return self.items.pop() 19 20 def isEmpty(self): 21 return self.items == [] 22 23 def size(self): 24 return len(self.items) 25
双端队列(Deque)
1 - 特性:添加和删除项是非限制性的,可从前后端添加和移除项。这种混合结线性构提供了单个数据结构中的栈和队列的所有功能 2 - 概念:与队列类似项的有序集合。有首端和尾端两端,在集合中保持不变 3 - Deque():创建新的deque,不需要参数,返回空的deque 4 - addFront():将一个新的项添加到deque前端,需要参数,不返回任何内容 5 - addRear():将一个新的项添加到deque后端,需要参数,不返回任何内容 6 - removeFront():从deque前端删除一项,不需要参数,返回删除的项,修改deque 7 - removeRear():从deque后端删除一项,不需要参数,返回删除的项,修改deque 8 - isEmpty():判断deque是否为空,不需要参数,返回布尔值 9 - size():测量deque中项的个数(返回整数),不需要参数 10 11 class Deque(): 12 def __init__(self): 13 self.items = [] 14 15 def addFront(self, item): 16 return self.items.append(item) 17 18 def addRear(self, item): 19 return self.items.insert(0, item) 20 21 def removeFront(self): 22 if not self.isEmpty(): 23 return self.items.pop() 24 25 def removeRear(self): 26 if not self.isEmpty(): 27 return self.items.pop(0) 28 29 def isEmpty(self): 30 return self.items == [] 31 32 def size(self): 33 return len(self.items)