Data structures 计算机学习中数据结构的实例?

Data structures 计算机学习中数据结构的实例?,data-structures,stack,queue,linked-list,Data Structures,Stack,Queue,Linked List,我的朋友接受了一次IT公司的采访,他们要求他给出每种数据结构的实际例子,如何将这种数据结构用于计算机研究 数据结构 堆叠 队列,循环队列 链表、双链表、循环链表 二叉搜索树 图表 地图 还有一些人喜欢搜索和排序 (例如,在用于 维护进程队列[使用队列数据结构]如下 (所有其他) 与软件相关的示例 实现与计算机 科学、操作系统等 为了获得积极的响应通常使用队列将一组数据保存在一个有组织的结构中,以便在需要时可以方便地立即访问,因为它是FIFO(先进先出)。然而;当该队列已满时,将信息填入该队列时,

我的朋友接受了一次IT公司的采访,他们要求他给出每种数据结构的实际例子,如何将这种数据结构用于计算机研究

数据结构

  • 堆叠
  • 队列,循环队列
  • 链表、双链表、循环链表
  • 二叉搜索树
  • 图表
  • 地图 还有一些人喜欢搜索和排序
  • (例如,在用于 维护进程队列[使用队列数据结构]如下 (所有其他)

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


    为了获得积极的响应

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

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

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

    我希望这能有所帮助。

    一些例子:

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

  • 堆栈-任何递归调用
  • 队列,循环队列-所有FIFO算法都使用此
  • 链表、双链表、循环链表-所有RDBMS
  • 树,二进制搜索树-需要搜索的地方。内存存储在B树中
  • 谷歌地图

  • 那么,当你说“计算机研究”时,你实际上是指理论上的计算机科学,还是指软件的实现?您的示例建议使用后者。这是一个面试问题?@djacobson question edited.@BoltClock Yes为什么不适合作为面试问题。你的thinkstack,queue,tree,我对这个数据结构很清楚,正如你所说的,只是我需要更多关于剩下的一个的解释,如果你能帮我做很多特别的链接列表??为你的查看添加了更多的信息我认为你没有正确解释哈希映射。如果他已经拥有一个结构的内存地址,那么访问它就没有什么麻烦了——这是一个O(1)操作。散列映射允许您高效地查找键值对,其中一个用途是数据库。例如,如果将键值对存储在列表中,如果无法对键值进行排序,则搜索将是一个O(n)操作。使用散列映射,可以保证对上的键进行O(1)查找