stack相关内容

添加缺少左括号入式

我是pretty的停留在找到一个给定的问题得到妥善解决,一直在寻找一些想法在互联网上。没有能找到任何 问题是:写一个程序,它从标准输入的前pression没有留下括号并打印相当于缀EX pression插入了括号。 由于EX pression: 1 + 2)* 3 - 4)* 5 - 6))) 输出:((1 + 2)*((3 - 4)*(5 - 6))) 有什么可以解决这个问题最好的办法? ..
发布时间:2015-11-30 15:28:27 C/C++开发

给定一个数组A,计算乙ST B〔I]卖场最近的元素的[I]左边是小于A [I]

由于数组 A [1..1] ,我们要计算另一个数组 B [1..1] 等>的存储最近的元素 A [1] 这是小左比 A [1] 。 时间复杂度应 O(N)。 (对于 I> 1 ,如果有向左没有这样的较小的元素,那么 B [I] 只包含 A [1] 和 B [1] = A [1] ) 例如: 输入:6,9,12,17,11 输出:6,6,9,12,9 我想实现一个堆栈, 把 A ..
发布时间:2015-11-30 15:20:25 C/C++

如何转换一个递归函数使用堆栈?

假设我有一棵树用深度优先搜索遍历,而我的算法遍历它看起来是这样的: 算法搜索(节点): doSomethingWith(节点) 连接到节点的每个子节点: 搜索(儿童) 现在在许多语言有一个最大深度递归,例如,如果递归的深度为超过一定限度,则过程会崩溃一个堆栈溢出。 如何此功能,而不递归来实现,并与而非栈?在许多情况下,有很多局部变量;在那里他们可以存储? 解决方案 ..
发布时间:2015-11-30 14:26:39 C/C++

基本递归,检查平衡括号

我写的软件在使用堆栈检查平衡方程过去,但现在我要求写一个类似的算法递归检查严格嵌套的括号,括号。 很好的例子:()[]() ([]()[]) 坏的例子:((([)] 假如我的函数被调用:isBalanced。 如果每次通过评估一个较小的子串(直至达到2人给出了基本情况)?或者,我应该始终评估满弦和指数移动向内? 解决方案 有很多方法可以做到这一点,但最简单的算法是简单地处理着左到右 ..
发布时间:2015-11-30 13:25:06 C/C++

使用find分钟/找到-MAX比O(n)的更有效的堆栈?

我感兴趣的创建类似堆栈支持以下操作的Java数据结构,尽可能有效地: 一键,还增加了一个新的元素堆顶上, 流行音乐,这消除了堆栈顶部元素 找到-Max的,它返回(但不删除)堆栈的最大元素,而 找到民,返回(但不删除)堆栈的最小元素,而 什么是最快的实现这个数据结构的?我怎么可能去写它的Java? 解决方案 这是一个经典的数据结构的问题。问题背后的直觉是如下 - 的唯一方法是,如果你把一个新 ..
发布时间:2015-11-30 13:21:50 Java开发

实现使用堆叠两个队列

一个类似的问题被问早前有的,但这里的问题是它的反向使用两个队列作为堆栈。现在的问题... 由于两个队列与他们的标准操作(排队的离队的的isEmpty 的尺寸的),实施堆栈与它的标准操作(流行的按的的isEmpty 的尺寸的)。 应该有两个版本的解决方案。 A版:推一个项目时,堆栈应该是有效的 版本B:弹出一个项目时,堆栈应该是有效的 我感兴趣的算法比任何具体的语言实现研究。不过,我欢迎的解 ..
发布时间:2015-11-30 13:21:37 C/C++

设计一个堆栈,这样getMinimum()应该是O(1)

这是一个面试问题之一。需要设计一个堆栈持有使得getMinimum()函数应返回的最少元件在栈的整数值。 例如:考虑下面的例子 情况1 5 - > TOP 1 4 6 2 当getMinimum()被调用它应该返回1,这是最小元素 在栈。 案例#2 stack.pop() stack.pop() 注:两个5和1 poped出栈。所以在此之后,堆栈 好像, 4 - >顶 6 2 ..
发布时间:2015-11-30 13:18:43 C/C++

如何实现用两叠一个队列?

假设我们有两个堆栈并没有其他的临时变量。 时尽可能仅使用两个栈,以“构建”一个队列的数据结构? 解决方案 请2堆栈,我们姑且称之为收件箱和发件箱。 队列: - 将新元素添加到收件箱 出列: - 如果发件箱是空的,由收件箱弹出的每个元素,将其推到斟满发件箱 - 弹出并从返回的顶级元素发件箱 采用这种方法,每个元件将在每个堆叠正好一次。 - 这意味着每个元素将被推两次和弹出两次,给予 ..
发布时间:2015-11-30 13:16:22 C/C++

是必要的功能少于四个参数预留堆栈空间?

刚开始学习的x64汇编,我有一个关于函数,参数,堆栈的问题。据我了解,在函数的第四个参数得到传递给RCX,RDX,R8和R9寄存器(和XMM0-XMM3的花车)在Windows中。因此,与将四个参数一个微不足道的新增功能如下: 补充: MOV R10,RCX 加入R10,RDX 加入R10,R8 加入R10,R9 MOV RAX,R10 RET 不过, ..
发布时间:2015-11-28 11:53:25 其他开发

如何使Stack.Pop线程

我使用的BlockingQueue code发布我的问题是如何可以跟帖工作的(现在的)线程安全的堆叠知道什么时候是空的。即使我添加另一个线程安全的包装器计数锁定底层集合类似的PUSH和POP做,我仍然会碰到访问计数,然后弹出是不是原子的竞争状态。 因为我看到他们可能的解决方案(这是preferred和我失去了任何会更好地工作?): 在消费者线程赶上抛出POP()的InvalidOperatio ..
发布时间:2015-11-27 11:41:38 C#/.NET

实现自定义泛型列表/队列/堆栈相结合的有效方式

我发现一个以上的场合的通用集合需要在时间和作为栈或队列在另一时间被处理作为列表在一个点上。对于我目前正在开发一个应用程序,它没有任何意义,使用三个不同的对象。 我能想到的最简单的解决方案是实现队列/出列/按键/上的标准列表流行/窥视功能。也(不包括在$ C $以下c)中,一个接口约束施加于T允许类保持位置/顺序索引每个列表,队列,堆 公共类List< T>: System. ..
发布时间:2015-11-27 11:21:54 C#/.NET

虚拟机,没有虚拟机 - 栈和跟踪

我读过许多有关这里的问题,这说明什么栈和堆是如这一个:哪里是什么栈和堆 ,这是非常有益的。 据我所知,高级语言编译成中间语言,如字节code Java和MSIL对.NET程序。 MSIL和字节code,然后编译成机器code。 我的理解是,中间语言使用的堆和栈,然后程序被编译成机器code,这是与平台相关的,例如基于寄存器的窗户。 然而,在这个问题我已经联系的一些回答者如的布赖恩·R·邦迪提 ..
发布时间:2015-11-27 11:17:49 C#/.NET

堆叠< T>实现ICollection的,但自ICollection&LT方法; T>

我试图创建一个基于自定义集合堆栈< T> 。当我看到堆栈< T> [从元数据]在Visual Studio中,充分显示了堆栈< T> 工具的ICollection ,这需要它来实现的ICollection 的 CopyTo从(数组的数组,索引) 的方法,而是,它显示为具有的ICollection< T> 的 CopyTo从(T []数组,索引)方法。 ..
发布时间:2015-11-26 21:02:03 C#/.NET

线程在C#中,值类型和引用类型澄清?

阅读乔恩斯基特文章后,和的从MSDN这个的文章中,我仍然有一个问题的 让我们说我有这个code: MyPerson MP =新MyPerson(); //领域 INT G = 0; //领域 公共无效的DoWork() { INT I; MyPerson MP2 =新MyPerson(); ... } 现在让我们说我有2个线 ..
发布时间:2015-11-26 17:01:05 C#/.NET

堆栈主场迎战堆在.NET

在实际编程经验,你怎么堆和栈这方面的知识实际上是来救你在现实生活中?从战壕里的任何故事?或者是这个概念很好的填补了编程书籍和良好的理论? 解决方案 对我来说,是一个“开发者/程序员”和“工匠”之间的区别。任何人都可以学会写code和看到的东西只是“神奇地出现”你不知道为什么/如何。要真正成为你做什么有价值的,我觉得这是一个非常重要的,找出尽可能多地了解您所使用的框架。请记住它不只是一个的语言的 ..
发布时间:2015-11-25 23:43:31 C#/.NET

为什么队列(T)和堆栈(T)未实现的ICollection(T)?

在我甚至问,让我得到了明显的答案出路:的的ICollection< T> 接口包括删除方法来删除任意元素,其中问答LT; T> 和堆栈< T> 不能真正支持(因为它们只能删除“结束”元素)。的 OK,我意识到这一点。其实,我的问题是没有专门关于问答LT; T> 或堆栈< T> 集合类型;相反,它是关于不实施的ICollection&LT的设计决定; ..
发布时间:2015-11-25 23:26:36 C#/.NET

营; .NET:stackalloc

我有关于 stackalloc 操作符的功能的几个问题。 它是如何实际分配?我认为这确实是这样的: 无效* stackalloc(INT sizeInBytes) { 无效* P = StackPointer(ESP); StackPointer + = sizeInBytes; 如果(StackPointer超过堆栈大小) 抛出新StackOver ..
发布时间:2015-11-25 23:22:44 C#/.NET

为什么堆栈< T>和队列< T>一个数组实现的?

我读果壳中的C#4.0的阿尔巴哈利兄弟我碰到这样的: 堆栈都与一个数组多数民众赞成调整的要求,与队列和List内部实现。 (第288条第4款) 我不禁想知道为什么。链表提供了O(1)头部和尾部插入和删除(这应该工作以及堆栈或队列)。一个大小可调整的阵列具有O(1)摊销插入(如果我没记错的话),但为O(n)最坏的情况(我不知道删除)。它可能比使用链表更多的空间(大叠/队列)。 有没有更多的 ..
发布时间:2015-11-24 16:19:14 C#/.NET

堆和栈分配的影响(.NET)

从 在另一个答案有人指出,该堆栈快点。这是唯一的含义?可能有人给code例子,一个简单的分配位置变化可能会解决问题(如性能)? 请注意,这个问题是.Net的 1这个问题从SO删除。 解决方案 所以,只要你知道什么是语义,堆栈VS堆的唯一后果是确保你不会溢出堆栈,并成为而言注意,有垃圾收集堆相关的成本。 例如,JIT的可以的通知,对新创建的对象从来没有使用当前方法之外(参考无法逃避其他地方 ..
发布时间:2015-11-24 16:00:59 C#/.NET

在.NET堆栈VS的Windows堆

借助 Windows内部本书第5版在页面下面的评论360。 为初始线程堆栈大小可从图像没有办法 以指定其他尺寸。 据我所知,针对Windows操作系统,每个线程都有4K或16K(取决于​​系统)堆栈,并且大小是固定的。 那么怎么样叠.NET? 在多大栈? 堆栈的大小是固定的或可变的? 是分配给每一个线程就像Windows的情况下?堆栈 解决方案 是的,启动线程的大小是 ..
发布时间:2015-11-24 15:46:14 C#/.NET