数据结构中 数组、链表、图的概念

发布于:2025-06-02 ⋅ 阅读:(29) ⋅ 点赞:(0)

数据结构是计算机存储、组织数据的方式,数组、链表和图是三种常见的数据结构,下面为你详细介绍它们的概念:

数组

数组是一种线性数据结构,它由一组相同类型的元素组成,这些元素存储在连续的内存位置上。每个元素都可以通过一个唯一的索引来访问,索引通常从 0 开始。

特点

  • 随机访问:可以通过索引直接访问数组中的任意元素,时间复杂度为 O(1) 。
  • 固定大小:在创建数组时,需要指定数组的大小,一旦确定,大小就不能改变。
  • 连续存储:数组元素在内存中是连续存储的,这使得访问元素非常高效,但也可能导致内存碎片问题。

示例

#Python 中创建一个整数数组
array = [1, 2, 3, 4, 5]
# 访问数组中的元素
print(array[2])  # 输出 3

链表

链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。链表中的节点在内存中不一定是连续存储的。

特点

  • 动态大小:链表的大小可以在运行时动态改变,不需要预先分配固定的内存空间。
  • 顺序访问:要访问链表中的某个节点,需要从链表的头节点开始,依次遍历每个节点,直到找到目标节点,时间复杂度为
    O(n)
  • 非连续存储:链表节点在内存中可以不连续存储,这使得插入和删除操作非常高效,但随机访问效率较低。

示例

# Python 中实现一个简单的链表节点类
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

# 创建链表
head = Node(1)
second = Node(2)
third = Node(3)

head.next = second
second.next = third

# 遍历链表
current = head
while current:
    print(current.data)
    current = current.next

图是一种非线性数据结构,它由一组节点(也称为顶点)和一组连接这些节点的边组成。图可以用来表示各种实际问题,如社交网络、地图、电路等。

特点

  • 多对多关系:图中的节点可以与多个其他节点相连,形成复杂的关系网络。
  • 无固定结构:图的结构可以非常灵活,没有像数组和链表那样的固定顺序。
  • 表示方法多样:图可以用邻接矩阵、邻接表等多种方式来表示。

示例

# Python 中使用邻接表表示图
graph = {
    'A': ['B', 'C'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B'],
    'E': ['B', 'F'],
    'F': ['C', 'E']
}

# 打印图中节点 A 的邻居节点
print(graph['A'])  # 输出 ['B', 'C']

综上所述,数组适合随机访问和固定大小的数据存储,链表适合动态插入和删除操作,而图则适合表示复杂的关系网络。在实际应用中,需要根据具体问题的需求选择合适的数据结构。


网站公告

今日签到

点亮在社区的每一天
去签到