data-structures数据结构入门


备注

本节概述了数据结构是什么,以及开发人员可能想要使用它的原因。

它还应该提到数据结构中的任何大型主题,并链接到相关主题。由于数据结构的文档是新的,您可能需要创建这些相关主题的初始版本。

数组:简单的数据结构

阵列数据结构用于在连续的内存块中存储类似的对象(或数据值)。数组数据结构具有固定大小,它确定可以存储在其中的数据值的数量。


数组:C ++方式

在C ++编程语言中,我们可以声明一个静态数组如下

int arrayName[100];
 

这里我们声明了一个名为“arrayName”的数组,它可以存储多达100个值,所有这些值都是相同的类型,即整数。

现在,我们将讨论此数据结构的一些优点和缺点

  1. 我们可以在Constant Time中访问存储在Array中的Data Values,即时间复杂度为O(1) 。因此,如果我们想要访问存储在第i个位置的数据值,我们不需要从起始位置开始并向上移动到第i个位置,但是我们可以直接跳到第i个位置,从而节省计算时间。
  2. 在数组中间插入元素不是一项有效的任务。假设我们想在第i个位置的数组中添加一个新元素,那么我们需要先在第(i-th)和第(i + 1)个位置移动所有元素,以便为新元素创建空间。示例: 1 4 2 0 是一个包含4个元素的数组,现在我们要在第2个位置插入3,然后我们需要进一步移动4,2和0一个位置以创建3的空间。
  1 3 4 2 0
 
  1. 与插入元素类似,从数组中第i个位置删除元素也是无效的,因为我们需要将删除元素前面的所有元素移动1个块以填充由删除的空闲空间元件。

这些是数组的3个简单特征,在这里您可能认为数组不是一种有效的数据结构,但在实践中,数组的优势可能会超出它的优势。这在很大程度上取决于您想要服务的目的,您可能不希望像访问它们那样经常插入或删除元素,在这种情况下,数组是绝对完美的数据结构。

引入此数据结构的唯一目的是确保您不会根据优势和劣势的数量选择数据结构,但您应该始终尝试通过考虑您的问题来分析数据结构的重要性,例如,如果与插入或删除数据值相比,您将花费大量时间访问数据值,那么在这种情况下,我们需要更多地利用优势而不是劣势。

数据结构简介

数据结构是一种组织和存储信息的方式。

让“你好,世界!” string是我们需要组织和存储在字节可寻址内存中的信息。

每个ASCII字符需要7位存储空间。大多数系统为每个字符保留8位(1字节),因此“Hello,World!”中的每个字符都是如此。存储在一个字节大小的单元存储器中,一个接一个地连续存储。

我们需要对字符串进行单一引用,即使它跨越多个内存地址,因此我们使用字符串中第一个字符的地址“H”。可以使用零索引字符在“H”的地址和该字符的索引处访问每个其他字符。

我们想打印我们的字符串,“Hello,World!”我们知道它在内存中的地址,我们提供给打印功能,但打印功能如何知道停止打印连续的内存位置?一种常见的方法是将空字符'\ 0'附加到字符串。当print函数遇到null字符时,它知道它已到达字符串的末尾。

我们已经定义了一种组织和存储字符串的方法,即数据结构!这个非常简单的数据结构是一个以null结尾的字符数组,这是组织和存储字符串的一种方法。