Questions tagged «data-structures»

数据结构是以一种组织数据的方式,该方式允许有效地查询和/或更新该数据的特定属性。


6
不同数据结构的实际使用
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 去年关闭。 改善这个问题 关于数据结构的讨论很多,但是我找不到一个简单的数据结构列表及其实际用途。我正在尝试学习面试,我认为这会和其他许多人一起帮助我。我正在寻找这样的东西: 数据结构-示例/用于 哈希表-快速数据查找...然后举一个例子 数组-... 二叉树-... 如果某处有这样的资源,请告诉我。 谢谢! 编辑:我的意思是维基百科全都不错,但是在大多数页面上,它们实际上并未列出实际用途。我在寻找更多的东西。



30
递归地反转Java中的链表
我已经在一个类的Java项目上工作了一段时间。它是链表(此处称为AddressList,包含称为的简单节点ListNode)的实现。问题在于,一切都必须使用递归算法来完成。我可以用一种方法来做所有的事情:public AddressList reverse() ListNode: public class ListNode{ public String data; public ListNode next; } 现在,我的reverse函数只是调用一个带有参数以允许递归的辅助函数。 public AddressList reverse(){ return new AddressList(this.reverse(this.head)); } 我的助手功能具有的签名private ListNode reverse(ListNode current)。 目前,我让它使用堆栈来迭代地工作,但这不是规范所要求的。我在C语言中找到了一种算法,该算法可以递归地将其递归逆转并将其转换为Java代码,并且可以正常工作,但是我对此并不了解。 编辑:没关系,我在此期间已找到答案。 private AddressList reverse(ListNode current, AddressList reversedList){ if(current == null) return reversedList; reversedList.addToFront(current.getData()); return this.reverse(current.getNext(), reversedList); } 当我在这里时,有人看到此路线有任何问题吗?

5
何时使用预排序,后排序和有序二进制搜索树遍历策略
我最近才意识到,虽然我一生都在使用BST,但我什至从未考虑过使用除顺序遍历之外的任何方法(虽然我知道并且知道使程序适应使用前/后遍历是多么容易)。 意识到这一点后,我抽出了一些旧的数据结构教科书,并寻找了在顺序遍历和后序遍历的有用性背后的原因-尽管它们并没有说太多。 什么时候实际使用预购/后购的一些示例?什么时候比有秩序更有意义?



13
存储数千个电话号码的最有效方法
这是一个Google面试问题: 大约有数千个电话号码要存储,每个电话号码有10位数字。您可以假设每个千位数字中的前5位数字相同。您必须执行以下操作:搜索是否存在给定号码。b。打印所有号码 什么是最有效的节省空间的方法? 我回答了哈希表,然后回答了霍夫曼编码,但我的面试官说我没有朝着正确的方向前进。请在这里帮助我。 使用后缀特里可以帮助吗? 理想情况下,每个数字存储1000个数字需要占用4个字节,因此总共要存储4000个字节才能存储1000个数字。从数量上讲,我希望将存储空间减少到<4000字节,这就是我的面试官向我解释的内容。


3
为什么Dijkstra的算法使用减少键?
Dijkstra的算法教给我如下 while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) 但是我一直在阅读有关算法的文章,我看到很多版本都使用reduce-key而不是insert。 为什么会这样?两种方法有何区别?



6
为什么要在C ++中的函数中定义结构和类?
我只是错误地在C ++中做了这样的事情,并且它起作用了。我为什么可以这样做? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } 现在,做完这些之后,我想起了很久以前在某个地方读到的有关此技巧的信息,它是一种针对C ++的穷人功能编程工具,但我不记得为什么有效,或者在哪里阅读。 欢迎回答任何一个问题! 注意:尽管在编写问题时我没有得到任何关于此问题的参考,但当前的侧边栏指出了这一点,因此我将其放在此处以供参考,无论哪种方式,问题都不同,但可能有用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.