【问题标题】:Why Stack, Queue and LinkedList considered as Linear Data Structure?为什么 Stack、Queue 和 LinkedList 被视为线性数据结构?
【发布时间】:2018-03-10 07:32:24
【问题描述】:

我读了几本书,但仍然不明白为什么它被认为是线性的。由于外观或顺序访问或其他原因,不确定。如果可能,请用一些合乎逻辑的术语解释一下。

【问题讨论】:

  • 链表和栈都可以用非常相似的数据结构来实现,而且都是线性的。不知道你在这里不明白什么。

标签: data-structures


【解决方案1】:

数据结构分为两类:线性和非线性。如果元素形成序列,则称数据结构是线性的,例如数组、链表、队列等。非线性数据结构中的元素不形成序列,例如树、哈希树、二叉树等。

在内存中有两种表示线性数据结构的方法。一种方法是通过顺序存储位置在元素之间建立线性关系。这种线性结构称为数组。另一种方式是通过链接表示的元素之间具有线性关系。这种线性数据结构称为链表。

【讨论】:

  • 感谢您提供有意义且合乎逻辑的答案。如果我理解错误,请纠正我。如果树只有左子节点,则形成序列也可以是树。例如左倾斜树。如果这是一个场景,可以假设它属于线性?
  • 此链接可能会有所帮助:courses.cs.vt.edu/csonline/DataStructures/Lessons/NonlinearDS/… 它们的区别与内存表示的类型有关。
  • 谢谢。在真正有帮助的论坛上找到了另一个答案。 “与作为线性数据结构的数组、链表、堆栈和队列相比,树是一种非线性数据结构。但在偏斜的特殊情况下,它变成了线性的。与线性相比,与非线性的偏差没有给它带来任何优势像列表这样的结构。” stackoverflow.com/questions/46861914/…
【解决方案2】:

之所以如此,是因为它们遵循线性方式,一步一步地从一个街区移动到另一个街区。

【讨论】:

    【解决方案3】:

    链表、堆栈、队列是线性的,因为它们的连接方式使得它们在任何节点上都只能有一个后代。与可以有一个或多个子节点或节点连接到给定节点的树和图不同。

    【讨论】:

      【解决方案4】:

      想象一下大自然。

      当事件一个接一个发生时 - 你选择线性(时间事件、年龄、天气等)。

      当事件发生分支时 - 你会选择非线性(例如食物链、生物命名法、将生物分类为王国、家庭等)

      【讨论】:

        【解决方案5】:

        链表:- 链表是节点的集合。 它具有端到端连接。一个节点保存另一个节点或下一个节点的地址,即节点相互依赖。它们以线性方式连接。因此链表被称为线性数据结构

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
        【解决方案6】:

        线性数据结构:

        元素(对象)是按顺序排列的,因此:

        只有一个第一个元素,只有一个下一个元素,

        只有最后一个元素并且只有一个前一个元素,而

        所有其他元素都有下一个和前一个元素

        https://codeandwork.github.io/courses/java/linearDataStructures.html

        非线性数据结构是那些非线性的!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-01
          • 1970-01-01
          • 2011-06-14
          • 2013-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多