用单链表实现一个栈,要求Push Pop的运行时间为O(1),来自《算法导论》习题10.2 2。 因为Push和Pop操作伴随着栈顶元素的插入和删除,所以,这个问题的本质是:在单链表的哪个位置进行插入和删除,其运行时间为O(1)?初步来看,可能的选项有两个,头部和尾部。 又因为,要想在单链表上插入和 ...
分类:
其他好文 时间:
2018-09-23 18:17:48
阅读次数:
459
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是 仅允许在表的一端进行插入和删除运算 。这一端被称为栈顶,相对地,把另一端称为栈底。 一、实现一个栈类Stack 基于堆栈的特性,可以用数组做线性表进行存储。 初始化 类的结构如下: 接下来,就是在原型上,对 、`出栈 清空栈 读取栈顶 读 ...
分类:
编程语言 时间:
2018-08-10 10:46:15
阅读次数:
154
目的 1. 使用栈将中缀表达式转换成后缀表达式 2. 使用后缀表达式求算术值 注意: 因为是简单实践,所以代码逻辑已经简化,比如只能对个位数的加减乘除进行解析、没有设异常处理等 一:需要实现一个栈 这个没什么好说的,只是一个结构很简单的栈 1 public class Stack { 2 3 pri ...
分类:
其他好文 时间:
2018-06-24 19:32:32
阅读次数:
169
栈和队列 1. 栈的实现 2. 队列实现 3. 两个栈实现一个队列 4. 两个队列实现一个栈 5. 设计含最小函数min的栈 6. 判断出栈序列是否合法 链表 ...
分类:
其他好文 时间:
2018-04-18 18:54:21
阅读次数:
184
【题目】两个队列实现一个栈 1. 首先,第一个元素1,选择一个队列插入,比如,选择queue1; 2. 然后,模拟入栈,后续元素插入已经含有元素的队列中,比如,queue1中再依次插入2,3; 3. 接着,模拟出栈,后入先出,此时应该3出栈,方法是让queue1先出1,2,同时,queue2依次入1 ...
分类:
其他好文 时间:
2017-12-04 00:12:02
阅读次数:
152
1. 实现一个栈,可以在最小时间复杂度内计算出栈中的最小值。空间复杂度无视。 啦啦啦 ...
分类:
其他好文 时间:
2017-11-21 14:39:14
阅读次数:
96
(⊙﹏⊙)...第一次写比较偏C++风格的代码,因为已经决定开始进入C++的学习了,于是用这篇作为一个入门的机会,于是看了一小部分《C++ Primer Plus》,很抱歉的说,因为自从学过基础语法后感觉很难再去认真看其他语言的基础语法,还好的是C++很强大并且兼容了C,于是我就只看了C++中用ne ...
分类:
其他好文 时间:
2017-11-03 23:56:17
阅读次数:
218
实现一个栈算法,要求实例对象能够进行切片操作#!/usr/bin/python #coding=utf-8 class Stack(object) : def __init__(self,size): #类的构造函数 self.size = size self.stack = [] def __st... ...
分类:
编程语言 时间:
2017-10-14 18:28:49
阅读次数:
166
题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 栈的特性:先进后出 队列的特:先进先出 将栈1的内容全都弹出,然后推入栈2,弹出栈2 达到先进先出的功能;所以分为push栈 和 pop 栈 代码: 拓展: 用两个队列实现一个栈: 思路: 两个队列 ...
分类:
其他好文 时间:
2017-09-13 09:52:35
阅读次数:
179