如何理解链表、树、图、栈等数据结构

「数据类型」指的是整型、实型、字符型、类这样的东西,是在讨论编程语言的时候使用的概念,在算法和数据结构的语境中基本不提。

而数组、链表、栈、队列这些都是「数据结构」。

这些数据结构之间还存在不同的关注点和层次关系:数组、链表注重数据间的排列方式,栈、队列注重操作;后者可以用前者实现。所以我觉得可以把「数组、链表」等称为「数据的物理结构」;「栈、队列」等称为「数据的逻辑结构」。

有些数据结构既可以是物理结构又可以是逻辑结构,比如树 —— 一般逻辑上「树」的概念,在物理上也是用树形结构(结构体 + 指针)实现的。但也有特殊情况,比如逻辑上的「堆」在物理上可以用数组实现;逻辑上的「并查集」在物理上可以用「森林」来实现。

posted @ 2021-09-09 20:06  晴天出去走走  阅读(326)  评论(0编辑  收藏  举报