队列、栈以及哈希
SmileLily0202
人不要忘记自己年轻时候的梦想
展开
-
分别用数组、链表实现队列
'''==========数组实现队列===============''' class MyQueue(): #用两个指针分别记录队列首元素的位置、队列尾元素往后一个位置 def __init__(self): self.items = [] self.front = 0 #队列头 self.last = 0 #队列尾元素往后一个位...原创 2019-04-22 17:11:28 · 195 阅读 · 0 评论 -
用数组、链表实现栈
'''==========数组实现栈=============== ''' class MyStack(): #模拟栈 def __init__(self): self.items = [] #判断栈是否为空 def isEmpty(self): return len(self.items)==0 #返回栈的大小 d...原创 2019-04-22 15:12:28 · 206 阅读 · 0 评论 -
如何翻转栈的所有元素
class MyStack(): #模拟栈 def __init__(self): self.items = [] #判断栈是否为空 def isEmpty(self): return len(self.items)==0 #返回栈的大小 def size(self): return len(self...原创 2019-04-22 18:27:40 · 431 阅读 · 0 评论 -
剑指offer-用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:栈是先进后出,队列是先进先出。将栈A作为入队列,栈B作为出队列。 栈A用来作入队列 栈B用来出队列,当栈B为空时,栈A全部出栈(将元素入栈的顺序翻转了)到栈B,栈B再出栈(即出队列,顺序就变成了先进先出了) class Solution: def __init__(self): ...原创 2019-04-23 12:00:07 · 104 阅读 · 0 评论 -
剑指offer-包含min函数的栈
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 '''用一个辅助栈来存放最小值 这个辅助栈工作原理: 入栈时,1)当数据栈为空时,进入栈的元素同时也进入辅助栈; 2)当它不为空时,就把该入栈元素与辅助栈的栈顶元素进行比较,若入栈元素小,则该元素同时也进入辅助栈;若不是,则对辅助栈不进行操作 ...原创 2019-05-06 13:23:11 · 63 阅读 · 0 评论 -
剑指offer-栈的压入、弹出序列
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5 是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的 长度是相等的) # -*- coding:utf-8 -*- '''借用一个辅助的栈,遍历压栈...原创 2019-05-06 14:19:47 · 68 阅读 · 0 评论