相关疑难解决方法(0)

什么是鲜为人知但有用的数据结构?

周围有一些数据结构非常有用,但大多数程序员都不知道.他们是哪一个?

每个人都知道链接列表,二叉树和哈希,但是例如跳过列表布隆过滤器.我想知道更多不常见的数据结构,但值得了解,因为它们依赖于很棒的想法并丰富了程序员的工具箱.

PS:我也对像跳舞链接这样的技巧感兴趣,这些技巧巧妙地使用了常见数据结构的属性.

编辑:请尝试更详细地包含指向描述数据结构的页面的链接.此外,尝试添加几个关于数据结构为什么很酷的词(正如JonasKölker已经指出的那样).此外,尝试为每个答案提供一个数据结构.这将允许更好的数据结构根据他们的投票单独浮动到顶部.

language-agnostic computer-science data-structures

796
推荐指数
52
解决办法
35万
查看次数

使用两个队列实现堆栈

之前一个类似的问题,但这里的问题与它相反,使用两个队列作为堆栈.问题......

鉴于两个队列与他们的标准操作(enqueue,dequeue,isempty,size),实现堆栈与它的标准操作(pop,push,isempty,size).

应该有两个版本的解决方案.

  • 版本A:推送项目时堆栈应该是高效的; 和
  • 版本B:弹出项目时堆栈应该是高效的.

我比任何特定的语言实现更感兴趣的算法.但是,我欢迎用我熟悉的语言表达的解决方案(,,,,,).

algorithm stack data-structures

134
推荐指数
4
解决办法
19万
查看次数

为什么要使用两个堆栈来建立队列?

如果使用数组实现,我可以看到使用两个堆栈的优势,因为使用数组比使用数组更容易实现堆栈.但是如果使用链接列表,有什么优势呢?将堆栈弹出到队列上的行为增加了链表和数组实现的开销.

list abstract-data-type

11
推荐指数
2
解决办法
6294
查看次数

从队列中获取O(1)时间的最小值/最大值?

如何在0(1)时间复杂度的任何时间从队列中检索max和min元素?之前我使用Collections.max和min来查找元素,但这将是0(n).

java data-structures

10
推荐指数
2
解决办法
3万
查看次数

是否可以在不使用队列的情况下进行广度优先搜索或广度优先遍历?

我记得并检查过,遍历树或爬行网络宽度优先(BFS)的常用方法是使用队列。实际上有没有一种方法可以不使用队列来实现它?

queue breadth-first-search web-crawler

5
推荐指数
2
解决办法
4288
查看次数

使用两个堆栈Python实现队列

我一直在讨论一些编码面试问题.我想知道如何在Python中使用两个堆栈来实现队列?Python不是我最强的语言,所以我需要所有的帮助.

像入队,出队和前线功能一样.

python queue stack

3
推荐指数
1
解决办法
1万
查看次数