计算机研究中数据结构的实际例子?

时间:2011-01-14 19:52:01

标签: data-structures stack queue linked-list

我的朋友面对IT公司的采访他们问他给每个数据结构的实际例子如何将这种数据结构用于计算机研究?

数据结构

  1. 堆栈
  2. 队列,循环队列
  3. 链接列表,双向链表,循环链表
  4. 树,二进制搜索树
  5. 图形
  6. 地图 和其他人喜欢搜索和排序
  7.   

    (例如在操作系统中   维护进程队列[使用队列数据结构]就像这样   所有其他)

         

    与软件相关的示例   实施和计算机   科学,操作系统等。

    希望得到积极回应

3 个答案:

答案 0 :(得分:8)

一些例子:

  1. 堆叠 - 撤消功能使用此功能 弹出最近的动作 堆栈,然后是最近的第二个等等。
  2. 队列 - 正常进程调度 使用队列(如何进程或 之后访问线程 初期工作虽然有所不同)
  3. 树 - 目录遍历
  4. 二进制搜索 树 - 快速搜索给定的 元素
  5. Graph - 存储数据,以便您可以将其视为绘制数据的数学“平面”。它有效地表示(可能)数据之间非常复杂的关系,因为(如果你看链接中的图像)多个“链接”可以存在于两个以上的数据之间,而不是链接列表,你只能在有你左边和右边的链接。
  6. 哈希映射 - 搜索某些内存块(即使用多个指针时)如果您的计算机上有地址簿,则会发生哈希处理。它可能使用哈希映射,因此当您输入John Smith时,他的电话号码和其他信息可用。这是因为当输入“John Smith”时,存在指向存储器中某个位置的散列函数。每次想要访问一些简单的信息时,输入内存地址都会很麻烦。
  7. 链接列表 - 单链表提供元素之间单向移动,双链表提供元素之间来回移动,圆形链表提供类似对象的循环导航(流程是一个例子)当你想要时使用它能够在元素之间导航,因为每个元素都链接到下一个元素和前一个元素(对于圆形。非圆形链接列表具有开头和结尾)。想象一下你的网络浏览器......你点击“返回”转到上一页,你可以点击“转发”转到下一页。您可以将其视为线性链表。转到下一张或上一张照片然后最终从头开始的照片幻灯片放映可被视为循环链接列表。 (它们不一定像那样实现,但它是一种可视化的好方法)
  8. 根据OP的要求编辑了有关最后结构的更多信息。

答案 1 :(得分:0)

队列通常用于在有组织的结构中保存一组数据,以便在需要时立即轻松访问它(因为它是先进先出)。然而;当该队列 FULL 时将信息填充到该队列中时,其余信息将丢失。为了解决这个问题,使用了循环队列,它会覆盖其他元素,以便最近的数据 NOT 丢失。

您提到的一个例子就是计算机的资源队列。由于计算机没有无限的资源,因此必须使用队列才能将资源分配给需要它的人。例如,一个进程会请求一些资源,它将被抛入队列并被赋予优先级,根据这些信息,操作系统将决定它需要多少资源以及给它多少时间。为了允许多个进程使用它,任何需要完成处理的进程都会在该队列中放入请求。

链表有许多应用程序,它们不可能将其简化为一个。例如,您可以通过链表中元素的节点队列链接帐户(对象)。在链表中,节点具有上一个节点和下一个节点。它有效地将所有元素链接在一起,以便可以遍历它们。取决于链接列表的样式,它允许向前遍历,向后遍历或两个方向。需要注意的一点是,链接列表在大小方面可以是动态的,因为添加新笔记需要完成的只是将其附加到列表的末尾。然而;在性能方面,速度是O(N),这意味着性能在很大程度上取决于列表的大小。

我希望这会有所帮助。

答案 2 :(得分:0)

  1. Stack - 任何递归调用
  2. 队列,循环队列 - 所有FIFO算法都使用此
  3. 链接列表,双向链表,循环链表 - 所有RDBMS
  4. 树,二进制搜索树 - 需要搜索的地方。内存存储在B树
  5. 图表 - 谷歌地图