数据结构

本文介绍了数据结构的概念,包括数据、数据元素、数据结构的逻辑关系和存储方式。逻辑结构分为集合、线性结构、树结构和图结构,而存储结构则有顺序存储和链式存储两种。此外,还提到了抽象数据类型(ADT)的概念,以及一些常见的数据结构,如栈、队列、数组、链表、树、图和堆。

一、数据结构

1.数据(data)是信息的载体,在计算机科学中是指所有能被计算机程序识别和处理的符号集合。可将数据分为两大类:一类是整数、实数等数值数据;另一类是文字、声音、图形和图像等非数值数据。

2.数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。构成数据元素的不可分割的最小单位称为数据项(data item)。数据元素是讨论数据结构是涉及的最小单位,数据项一般不予考虑。

3.数据结构(data structure)是指相互之间存在一定关系的数据元素的集合。是计算机中存储、组织数据的方式。它包含三方面的内容,逻辑关系、存储关系及操作。

数据结构分为逻辑结构和存储结构。

数据的逻辑结构(logical structure) 是指数据元素之间逻辑关系的整体。根据数据元素之间逻辑关系的不同,数据结构分为以下四类:

  • 1)集合:数据元素之间就是“同属于一个集合”,除此之外,没有任何关系。
  • 2)线性结构:数据元素之间存在着一对一的线性关系。
  • 3)树结构:数据元素之间存在着一对多的层次关系。
  • 4)图结构:数据元素之间存在着多对多的任意关系。

数据的逻辑结构常用逻辑关系图来描述,其描述方法是:将每一个数据元素看作一个结点,用圆圈表示,元素之间的逻辑关系用结点之间的连线表示,如果强调关系的方向性,则用带箭头的连线表示关系。
在这里插入图片描述

数据的存储结构(storage structure) 又称为物理结构,是数据及其逻辑结构在计算机中的表示。通常有两种存储结构:顺序存储结构和链式存储结构。

顺序存储结构的基本思想是:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系是由元素的存储位置来表示的。

链式存储结构的基本思想是:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系是用指针来表示。

二、抽象数据类型

1.数据类型(data type)是一组值的集合以及定义于这个值集上的一组操作的总称。

2.抽象(abstract),就是抽出问题本质的特征而忽略非本质的细节,是对具体事物的一个概括。抽象可以实现封装和信息隐藏。

3.抽象数据类型(abstract data type,ADT)是一个数据结构以及定义在该结构上的一组操作的总称。

简单的ADT定义:

ADT抽象数据类型名
Data
	数据元素之间逻辑关系的定义
Operation
	操作1
		······
	操作2
		······
	······
endADT

三、常见的数据结构

  • 栈(Stack): 栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。
  • 队列(Queue): 队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。
  • 数组(Array): 数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。
  • 链表(Linked List): 链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。
  • 树(Tree): 树是典型的非线性结构,它是包括,2 个结点的有穷集合 K。
  • 图(Graph): 图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。
  • 堆(Heap): 堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。
  • 散列表(Hash table): 散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

下一篇:线性表(一)——顺序表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值