1、栈:
--栈:数据容器的一种,遵循后进先出原则 [LIFO, Last In First Out] --一般实现:栈可以用顺序表实现,也可以用链表实现。 --栈的初始化: Stack() 创建一个新的空栈,实例化一个对象 --栈的所有属性方法: push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数 class Stack(object): """栈""" def __init__(self): self.items = [] def is_empty(self): """判断是否为空""" return self.items == [] def push(self, item): """加入元素""" self.items.append(item) def pop(self): """弹出元素""" return self.items.pop() def top(self): """返回栈顶元素""" return self.items[len(self.items) - 1] def size(self): """返回栈的大小""" return len(self.items) --不同于 408 专业课书中 C++代码的实现需要定义栈的长度,这里因为是python不需要定义,而且更加方便 --栈的实现 if __name__ == "__main__": stack = Stack() stack.push("hello") stack.push("world") stack.push("itcast") print stack.size() print stack.top() print stack.pop() print stack.pop() print stack.pop()2、队列:
--队列:数据容器的一种,遵循先进先出原则 【First In First Out FIFO】 --队列的初始化: Queue() --队列的基本方法: enqueue(item) 往队列中添加一个item元素 dequeue() 从队列头部删除一个元素 is_empty() 判断一个队列是否为空 size() 返回队列的大小 class Queue(object): """队列""" def __init__(self): self.items = [] def is_empty(self): return self.items == [] def enqueue(self, item): """进队列""" self.items.insert(0,item) def dequeue(self): """出队列""" return self.items.pop() def size(self): """返回大小""" return len(self.items) if __name__ == "__main__": q = Queue() q.enqueue("hello") q.enqueue("world") q.enqueue("itcast") print(q.size()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())