自定义链表实现栈的数据结构,代码如下: class Stack: def __init__(self): self._first = None def push(self,item): self._first = _Node(item,self._first) def pop(self): self._first = self._first.next def isEmpty(self): return self._first is None class _Node: def __init__(s…
链表实现队列: 尾部 添加数据,效率为0(1) 头部 元素的删除和查看,效率也为0(1) 顺序表实现队列: 头部 添加数据,效率为0(n) 尾部 元素的删除和查看,效率也为0(1) 循环顺序表实现队列: 尾部 添加数据,效率为0(1) 头部 元素的删除和查看,效率也为0(1) #!/usr/bin/env python # -*- coding:utf-8 -*- class QueueUnderflow(ValueError): pass #链表节点 class Node(object): d…
2-4 依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( ) 删除,移动头指针: 增加,移动尾指针: 删除a,b ,队头c 2-3 在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作为( ) 这道题目,我坚持自己的答案,就是这个答案! 2-1 若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4.当从队列中删除两个元素,再加入两个元素后,front和rear的值分别为多少? 删除,front++ 增…
数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数. Input 第一行一个整数T 表示有T 组测试数据.(T <= 110) 对于每组测试数据: 第一行两个整数n, m,表示迷宫有n * m 个格子.(1…
栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完队就离开了,有些人晚一点,才刚刚进去人群排队. 数据是有顺序的,从数据1到数据2,再到数据3,和日常生活一样,我们需要放数据,也需要排列数据. 在计算机的世界里,会经常听见两种结构,栈(stack)和队列 (queue).它们是一种收集数据的有序集合(Collection),只不过删除和访问数据的顺…
修改BUG的时候一不小心BUG越修越多,鉴于维护程序并不是学习数据结构的初衷,我已经果断的弃坑了!! 以下内容再不更新,Github上的代码直接无法正常编译运行.... 参考参考就好,学习到栈的作用就好... =========================================================== 使用数据结构中的栈以及链表来制作一个能够处理中缀表达式的计算程序. 在该程序中输入的数字可以是任意正数.小数. 负数似乎也可以正常运行,即使我没有特意添加检测负数的代码.…
一.前言: 数据结构中队列和栈也是常见的两个数据结构,队列和栈在实际使用场景上也是相辅相成的,下面简单总结一下,如有不对之处,多多指点交流,谢谢. 二.队列简介 队列顾名思义就是排队的意思,根据我们的实际生活不难理解,排队就是有先后顺序,先到先得,其实在程序数据结构中的队列其效果也是一样,及先进先出.    队列大概有如下一些特性: 1.操作灵活,在初始化时不需要指定其长度,其长度自动增加(默认长度为32) 注:在实际使用中,如果事先能够预估其长度,那么在初始化时指定长度,可以提高效率    …
本文介绍LeetCode上有关栈.链表.堆和队列相关的算法题的考点,推荐刷题20道.具体考点分类如下图: 一.栈 1.数学问题 题号:85. 最大矩形,难度困难 题号:224. 基本计算器,难度困难 题号:975. 奇偶跳,难度困难 2.字符串或数组问题 题号:316. 去除重复字母,难度困难 题号:402. 移掉K位数字,难度中等 3.栈的设计和应用问题 题号:341. 扁平化嵌套列表迭代器,难度困难 题号:636. 函数的独占时间,难度中等 二.链表 1.排序问题 题号:23. 合并K个排序…
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实现 , 增删快 , 查找慢 实现了 栈 队列 ---|Vector: 和 ArrayList 原理相同 , 但线程安全 , 效率略低 ---| Stuck 类 ---|Set: 无存储顺序 , 不可重复 ---|HashSet 线程不安全,存取速度快.底层是以哈希表实现的 ---|TreeSet 红…
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实现 , 增删快 , 查找慢 实现了 栈 队列 ---|Vector: 和 ArrayList 原理相同 , 但线程安全 , 效率略低 ---| Stuck 类 ---|Set: 无存储顺序 , 不可重复 ---|HashSet 线程不安全,存取速度快.底层是以哈希表实现的 ---|TreeSet 红…