现实生活中的数据结构示例

时间:2019-01-31 17:59:55

标签: data-structures

在以下每个示例中,我们需要选择最佳的数据结构。选项包括:数组,链接列表,堆栈,队列,树,图,集合,哈希表。这不是家庭作业,但是,我对数据结构真的很好奇,我想回答这些问题,以便我能理解每种结构的工作原理。

  1. 您必须存储社交网络“提要”。您不知道大小,可能需要动态添加内容。
  2. 您需要将撤消/重做操作存储在文字处理器中。
  3. 您需要评估一个表达式(即解析)。
  4. 您需要将友谊信息存储在社交网站上。即谁与谁成为朋友。
  5. 您需要将图像(1000 x 1000像素)存储为位图。
  6. 实施打印机后台处理程序,以便可以按到达顺序打印作业。
  7. 要在Internet浏览器中实现后退功能。
  8. 将可能的动作存储在国际象棋游戏中。
  9. 存储一组固定的关键词,这些关键词经常被引用。
  10. 要将客户订单信息存储在可直接进入的汉堡店。 (客户不断前来,他们必须在付款/收款窗口中获得正确的食物。)
  11. 存储生物物种的家谱信息。

2 个答案:

答案 0 :(得分:1)

  1. 哈希表(唯一标识每个提要,同时允许添加其他提要(假设动态调整大小))
  2. 链接列表(双重链接:从一个节点开始,您可以一个一向后地前进/后退)
  3. 树(集成到编译器/自动机理论中;规则确定何时执行 分支以及要拥有多少个分支。查找解析树)
  4. 图(每个人都是重点,人脉/友谊是优势)
  5. 数组(二维,1000x1000,存储颜色值)
  6. 队列(就像排队等候检查站的人一样)
  7. 堆栈(您可以将每个站点添加到堆栈中 拜访了您,只要您不 关心前进。如果您关心转发,这与文字处理程序是一样的情况,因此链接列表)
  8. 树(可以跟随游戏的任何移动,从根到叶。注意这棵树是巨大的)
  9. 哈希表(如果您想使用关键字作为键,并获取与其相关的所有信息,我建议使用链接列表作为键的对应值的哈希表。我可能会误解这种情况,说明会造成混淆我对如何使用它们有一点了解
  10. 队列或哈希表(如果这是驱动器,假设人们没有切割  在彼此面前,就像是打印机问题。如果客户提前下订单,并且可以按任何顺序到达,则哈希表会更好一些,以订单号或客户名称为键,订单明细为值)
  11. 树(查找系统树)

如果您想进一步了解每种数据结构的工作原理,here是许多详细讨论它们的有用站点之一。

答案 1 :(得分:-1)

  1. 您必须存储社交网络“提要”。您不知道大小,可能需要动态添加内容。 -链接列表或哈希表
  2. 您需要将撤消/重做操作存储在文字处理器中。 – 堆栈(使用2个堆栈进行重做操作)
  3. 您需要评估一个表达式(即解析)。 – 堆栈或树
  4. 您需要将友谊信息存储在社交网站上。即,谁与谁–
  5. 您需要将图像(1000 x 1000像素)存储为位图。 – ArrayList(java)或2D阵列
  6. 实施打印机后台处理程序,以便可以按作业到达的顺序打印作业。 – 队列
  7. 在Internet浏览器中实现后退功能。 – 堆栈
  8. 将可能的动作存储在国际象棋游戏中。 –
  9. 存储一组固定的关键字,这些关键字经常被引用。 – 动态编程或哈希表
  10. 将客户订单信息存储在汉堡店。 (客户不断前来,他们必须在付款/食物收集窗口中获取正确的食物。)– 队列/分钟优先队列(如果订单简单并且花费的时间更少)
  11. 存储生物物种的家谱信息。 –