计算机学习中的结构?

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

数据结构

  • 队列,循环队列
  • 链接列表,双向链接列表,循环链接列表
  • 树,二进制搜索树
  • 图形
  • 地图和其他人喜欢搜索和排序
  • (例如在用于维护进程队列的操作系统中[所有其他队列都使用这种队列数据结构]

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

    希望得到积极的回应


    一些例子:

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


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

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

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

    我希望这有帮助。


  • 堆栈 - 任何递归调用
  • 队列,循环队列 - 所有的FIFO算法都使用它
  • 链接列表,双向链接列表,循环链接列表 - 所有RDBMS
  • 树,二进制搜索树 - 需要搜索的位置。 内存存储在B树中
  • 图表 - 谷歌地图
  • 链接地址: http://www.djcxy.com/p/39871.html

    上一篇: structures in computer study?

    下一篇: Important data structures in search