数据结构的基本概念和术语的一些介绍

2024-09-07 11:44

本文主要是介绍数据结构的基本概念和术语的一些介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据:是客观事物的符号表示,包括两种:

                 数值型(整数,实数)和非数值型(文字,图形,声音

数据元素:是数据的基本单位,通常作为一个整体进行表示。

                 与数据的关系:是数据集合的个体

数据项:组成数据元素的不可分割的最小单位。

以上三者的关系:数据>数据元素>数据项

                 例如:学生表>个人记录>学生的单个年龄,姓名

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

                 与数据的关系:是数据集合的一个子集

                 例如:整数数据对象是集合N{0,+-1,+-2,+-3....}

数据结构

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

1:逻辑结构:

数据元素之间的逻辑关系,与数据存储无关,是独立于计算机的。

       (1)集合结构:只有“属于同一集合”这一个关系。

       (2)线性结构:数据元素之间是“一对一”的关系。

       (3)树结构:数据元素之间属于“一对多”的关系。

       (4)图结构或网状结构:数据元素之间属于”多对多“的关系。

2:存储结构:

数据元素及其关系在计算机中内存中的表示,也称物理结构。

       (1)顺序存储结构:用一种来纳许的存储单元来表示数据元素之间的逻辑关系,由元素存储位置来表示。

       (2)链式存储结构:用任意存储单元存储数据元素,数据元素之间逻辑关系用”指针“来表示。c语言中用指针来实现链式的存储结构。

      (3)索引存储结构

      (4)散列存储结构

存储结构于逻辑卷结构的关系:

        存储结构是逻辑关系的映像于元素本身的映像

        逻辑结构是数据结构的抽象,存储结构是数据结构的实现

        两者综合起来建立了数据元素之间的结构关系

数据类型和抽象数据类型

1:数据类型:

是一个值的集合和定义在这个值集上的一组操作的总称。

     常见的基本数据类型:int,char,float......一系列进行表示。

数据类型的作用:

      (1)约束变量,常量的取值范围

     (2)约束变量,常量的操作

但是另一些常用的数据结构 ,例如:栈,队列,树.....不能直接用数据类型来表示。所以要用抽象数据类型

2:抽象数据类型:

具体包括三个部分:

  数据对象,数据对象上关系的集合,对数据对象的基本操作。

抽象类型的形式定义:

          抽象数据类型可用(D,S,P)三元组表示{

             D是数据对象

             S是D上的关系

             P是对D的基本操作集

           }

即是:

       抽象数据类型名{

        数据对象:<数据对象的定义>

        数据关系 :<数据关系的定义>

        基本操作:<基本操作的定义>

      }ADT 抽象数据类型名

其中,数据对象和数据关系的定义采用数学符号和自然语言描述

基本操作的定义格式:

基本操作名(参数表)

   初始条件:<初始条件描述>

   操作结果:<操作结果描述>

基本操作有两种:

         赋值参数只为操作提供输入值

         应用参数以”&“打头,出可以提供输入值外,还将返回操作结果

初始条件:

描述了操作执行之前数据结构和参数应满足的条件,若是条件为空,则省略。

操作结果:

说明操作正常完成后,数据结构的变化状况和应返回的值

例如:定义抽象类型的圆

        ADT Cricle{

             数据对象:D={r,x,y |r,x,y均为实数}

             数据关系:R={<r,x,y>|r石坂井<x,y>是圆心坐标}

             基本操作:Circle(&C,r,x,y)

                                     操作结果:构造一个圆

                               double Area(C)

                                    初始条件:圆已存在

                                    操作结果:计算面积

                                    .............

                                 }ADT Circle  //结尾别忘了加上

这篇关于数据结构的基本概念和术语的一些介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1144966

相关文章

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交