数组(arrays)和链接列表(linked lists)的区别

数组是存储元素集合的最常用的数据结构。大多数编程语言都提供了方法来轻松地声明数组和访问数组中的元素。链表,更确切地说是单链表,也是一种可以用来存储元素集合的数据结构。它由一系列节点组成,每个节点都有对序列中下一个节点的引用。...

数组与链接列表

数组是存储元素集合的最常用的数据结构。大多数编程语言都提供了方法来轻松地声明数组和访问数组中的元素。链表,更确切地说是单链表,也是一种可以用来存储元素集合的数据结构。它由一系列节点组成,每个节点都有对序列中下一个节点的引用。

如图1所示,是一段代码,通常用于声明并向数组赋值。图2描述了数组在内存中的样子。

数组(arrays)和链接列表(linked lists)的区别

上面的代码定义了一个可以存储5个整数的数组,并使用索引0到4访问它们。数组的一个重要属性是整个数组被分配为一个内存块,每个元素在数组中都有自己的空间。一旦定义了数组,它的大小就固定了。因此,如果在编译时不确定数组的大小,那么就必须定义一个足够大的数组来保证安全。但是,在大多数情况下,我们实际使用的元素数量少于我们分配的数量。所以相当多的内存实际上被浪费了。另一方面,如果“足够大的数组”实际上不够大,程序就会崩溃。

链表在它自己的内存块中将内存分别分配给它的元素,通过将这些元素作为链中的链接链接来获得整体结构。图3中的每个字段都有两个链接的列表元素。数据字段保存存储的实际数据,下一个字段保存对链中下一个元素的引用。链接列表的第一个元素存储为链接列表的头。

数据 下一个

图3:链表的元素

数组(arrays)和链接列表(linked lists)的区别

图4描述了一个包含三个元素的链表。每个元素存储其数据,除最后一个元素外的所有元素都存储对下一个元素的引用。最后一个元素的下一个字段中包含一个空值。列表中的任何元素都可以通过从开头开始并跟随下一个指针来访问,直到满足所需的元素为止。

  • 发表于 2020-11-05 09:04
  • 阅读 ( 173 )
  • 分类:IT

你可能感兴趣的文章

数组表(arraylist)和双链表(linkedlist)的区别

...别–arraylist与linkedlist 集合对于存储数据很有用。在普通数组中,数组大小是固定的。有时需要创建可以根据需要增长的阵列。Java等编程语言有集合。它是一个包含一组类和接口的框架。它充当一组元素的容器。集合允许存储、...

  • 发布于 2020-10-19 11:43
  • 阅读 ( 230 )

数组和列表在python中的工作方式

数组和列表是编程中最有用的数据结构——尽管很少有人真正地利用它们来发挥他们的全部潜能。今天我将通过基本知识和一些简单的Python示例来讨论您。 ...

  • 发布于 2021-03-15 17:19
  • 阅读 ( 232 )

excel中频率函数的使用

...改,频率百分比。 频率函数的作用是什么? Excel的频率数组函数允许您计算数据集的频率分布。提供数字数据集(即用作源的实际单元格)、bin阈值列表(即对数据进行排序的类别),然后按Ctrl+Shift+Enter。 那么,你怎么用呢...

  • 发布于 2021-04-04 02:54
  • 阅读 ( 244 )

矢量(vector)和列表(list)的区别

... 矢量与列表 经常混淆程序员,向量和列表是在C++和java中数组保存中使用的序列。这两个术语包含数组地址,但包含数组的方法不同。我们需要知道的基本点是,数组是一个“列表”,它包含部分或全部数据,即整数、浮点或字...

  • 发布于 2021-06-23 23:28
  • 阅读 ( 325 )

数组列表(array list)和链表(linked list)的区别

如何存储数据? 数组列表和链表是数据存储和检索的常用术语。虽然存储设备很多,但归根结底还是依赖于存储机制。这两种存储机制将数据放在存储设备中,并在需要时检索它们。让我们看看它们是如何在内存中存储数...

  • 发布于 2021-06-25 00:29
  • 阅读 ( 322 )

数组(array)和数组表(arraylist)的区别

什么是数组和数组列表(array and arraylist)? Array和ArrayList都是Java程序中常用的基于索引的数据结构。从概念上讲,ArrayList在内部是由数组支持的,然而,理解两者之间的区别是成为优秀Java开发人员的关键。这是最基本的一步,尤...

  • 发布于 2021-06-25 03:21
  • 阅读 ( 681 )

数组(array)和一串(string)的区别

两者之间的主要区别在于数组可以具有任何长度的任何数据类型,而字符串通常是以空字符“\0”结尾的ASCII字符。两者在不同编程语言中的实现方式都有很大的不同。数组和字符串在java中的工作方式与C++中的工作方式非常不同...

  • 发布于 2021-06-25 10:17
  • 阅读 ( 1393 )

堆栈(stack)和数组(array)的区别

...们有多种方法来存储和检索计算机程序中的信息。堆栈和数组是面向对象编程语言中最常用的两种数据存储方式。当然,可以用数组实现堆栈。然而,两者之间的主要区别是准入。 什么是堆栈(stack)? 堆栈是一种线性的、类似...

  • 发布于 2021-06-25 15:17
  • 阅读 ( 329 )

数组(array)和指针(pointer)的区别

数组和指针的主要区别在于,数组是一种数据结构,它存储相同数据类型的元素集合,而指针是一个变量,它在计算机内存中保存另一个变量的地址。 数组和指针是C语言和C++语言中使用的两个概念。数组是一组数据,其中包含...

  • 发布于 2021-06-30 23:59
  • 阅读 ( 685 )

单链表(single linked list)和双链表(double linked list)的区别

...表中的一个节点存储下一个节点和上一个节点的地址。 数组是存储同一数据类型的一组元素的数据结构。数组的一个主要缺点是它是预定义的或具有固定长度。链表为这个问题提供了一个解决方案,因为它允许动态存储数据。...

  • 发布于 2021-07-01 09:20
  • 阅读 ( 348 )
沙雕师长
沙雕师长

0 篇文章

相关推荐