一 数据结构入门
Posted ltfxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一 数据结构入门相关的知识,希望对你有一定的参考价值。
基本概念
-
有哪些数据结构?
线性表,栈,队列,串,数组,广义表,树,二叉树,图
重点是线性表,二叉树
每种数据结构需要掌握,添加、更新、删除、查询、排序等操作的实现
学习数据结构的四种境界:
境界1:听懂理论,听懂算法思路
境界2:完成主要数据结构基本算法的实现(理论+实践,数据结构入门)
境界3:完成更多数据结构更多算法的实现
境界4:融会贯通,举一反三,在后续开发中综合应用数据结构知识。
数据(data): 是描述客观事物的数值、字符、以及能输入及其且能被处理的各种符号集合。例如:数值、字符、声音、图像等等。
数据项(data item):具有原子性,是不可分割的最小数据单位。如学生信息相关的姓名、性别。
数据元素(data Element):数据的基本单位,通常由若干个数据项组成,在计算机程序中通常作为一个整体来处理。如描述一名学生完整信息的数据记录。
数据对象(data Object):性质相同的数据元素的集合,数据的子集。如一个学校所有学生的集合。
-
数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合。
一种是数据结构的逻辑层面,即数据的逻辑结构。
一种是存在于计算机的物理层面,即数据的存储结构。
-
数据结构=逻辑结构+存储结构+在存储结构上的运算/操作
-
数据的逻辑结构:数据元素之间的逻辑关系(和实现无关)
线性结构:有且只有一个开始节点和终端结点,并且所有节点最多只有一个直接前驱和直接后继。
线性表是一个典型的线性结构。
-
分类2:集合结构、线性结构、树状结构、网络结构
逻辑结构有四种基本类型:集合结构、线性结构、树状结构、网络结构。
表和树是最常用的两种高效数据结构。
集合结构:类似数学里的集合。
- 确定性:集合中的元素必须是确定的
- 唯一性:集合中的元素互不相同,{1,a},那么a不等于1
- 无序性:集合中的元素不分先后,{1,2}和{2,1}算同一个集合
线性结构:数据元素之间存在一对一的线性关系的数据关系
树状结构:除了第一个元素以外每个元素有且仅有一个直接前驱元素,但是可以有多个后继元素。一对多的关系。
网状结构:每个数据可以有多个前驱、多个后继。多对多的关系。
数据的存储结构:顺序存储、链式存储、索引存储、散列存储。数据元素本身之间的存储和以及数据元素之间的关系表示,数据的逻辑在计算机中的表示。
顺序存储结构:通常借助数组来实现。采用连续的存储空间。把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。
优点:节省存储空间。分配的存储空间用来存储结点的数据,结点之间的逻辑关系不占用存储空间。可以实现对结点的随机存取,一个结点对应一个序号,通过序号得到存储地址,查询方便。
缺点:插入和删除操作需要移动元素,效率低。
链式存储结构:数据元素对应的是不连续的存储空间,每个存储结点对应一个需要存储的数据元素。
每个结点有数据域和指针域组成,元素之间的逻辑关系通过存储结点之间的链接关系反映出来。
特点:1 比顺序存储结构密度小。
2 逻辑上相邻的物理结点不必相邻。
3 插入、删除灵活(不必移动结点,只需要改变其中的指针)。
4 查询慢
索引存储结构:除建立存储结点信息外,还建立附加索引表来标识结点的地址。比如图书的目录。
散列存储结构:根据结点的关键字直接计算出该结点的存储地址。
一种神奇的结构。添加和查询极快。
以上是关于一 数据结构入门的主要内容,如果未能解决你的问题,请参考以下文章