数据结构的基本概念

简介: 数据结构的基本概念

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。



数据项:一个数据元素可以有若干个数据项组成。 数据项是数据不可分割的最小单位。



数据对象:是性质相同的数据元素的集合,是数据的子集。



结构:结构是指各个组成部分相互搭配的排列的方式。不容数据元素之间不是独立的,而是存在特定关系,我们将这些特定关系的称为结构。



数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。



逻辑结构:是指数据对象中数据元素之间的相互关系。

分为以下四种:

1、集合结构: 集合结构的数据元素除了通数据一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,他们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似数学中的集合。

2、线性结构:线性结构中的数据元素之间的一对一的关系。

3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系

4、图形结构:图形结构的数据元素是多对多的关系。


物理结构:(存储结构)指数据的逻辑结构在计算机中的存储形式。存储器主要是针对内存而言,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构描述。

数据的存储元素直接按的逻辑关系,是实现物理结构的重点和难点。

数据元素的存储结构形式有两种:顺序存储和链式存储。

1、顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

这种存储结构其实很简单,排队占位。

2、链式存储结构:是白数据元素存放在任意的存储单元里,这组存储单元可以示连续的,也可以是不连续的。



数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。



在C语言中,数据类型可以分为两种类型:

原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等。

结构类型:有若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。



抽象是抽出事务具有普遍的本质



抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。

抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性



抽象数据类型的标准格式:

ADT 抽象数据类型名

Data

数据元素之间逻辑关系的定义

Operation

操作1

初始条件

操作结果描述

操作2

.......

操作n

........

endADT





算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。



算法有5个基本特性:输入、输出、有穷性、确定性和可行性。



算法具有零个或多个输入,算法至少有一个或多个输出。

有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。

确定性:算法的每一步骤都具有确定的含义,不会出现二义性。

可执行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过有限次数完成。





正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。大体可以分为以下四个部分:

1、算法程序的语法没有错误

2、算法对于合法的输入数据能够产生满足要求的输结果。

3、算法程序对于非法的输入数据能够得出满足规格说明的结果

4、算法程序对于精心选择的,甚至刁难的测试数据都有满足要求的输出结果。

可读性:算法设计的另一个目的是为了便于阅读、理解和交流

健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。

时间效率高和存储量低:





算法效率的度量方法:

 事后统计方法:这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。 这种的缺陷:

1、必须依据算法事先编制好程序,这通常需要花费大量的时间和精力。

2、时间的比较依赖于计算机的硬件和软件等环境因素,有时会掩盖算法本身的优劣。

3、算法的测试数据设计相当困难,并且程序的运行时间往往还与测试数据的规模有很大关系,效率高的算法在小的测试数据面前往往得不到体现。


相关文章
|
11天前
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
26 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
14天前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
34 1
|
19天前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(三)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
19天前
|
存储
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(二)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
19天前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(一)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
4月前
|
存储 算法 Linux
【数据结构和算法】---二叉树(1)--树概念及结构
【数据结构和算法】---二叉树(1)--树概念及结构
45 0
|
13天前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
28 0
|
1月前
|
C语言
数据结构基础详解(C语言):图的基本概念_无向图_有向图_子图_生成树_生成森林_完全图
本文介绍了图的基本概念,包括图的定义、无向图与有向图、简单图与多重图等,并解释了顶点度、路径、连通性等相关术语。此外还讨论了子图、生成树、带权图及几种特殊形态的图,如完全图和树等。通过这些概念,读者可以更好地理解图论的基础知识。
|
2月前
|
存储
【初阶数据结构篇】二叉树基础概念
有⼀个特殊的结点,称为根结点,根结点没有前驱结点。
40 1
|
3月前
|
存储
【数据结构】树和二叉树的概念及结构
数据结构——树和二叉树的概念及结构
69 3
【数据结构】树和二叉树的概念及结构