数据结构----基本概念和术语

零度安全 等级 497 0 0

数据结构----基本概念和术语

数据

  • 数据是输入计算机且能被计算机处理的各种符号的集合
  1. 信息的载体
  2. 是对客观事物的符号化的表示
  3. 能被计算机识别,存储和加工
  • 数据包括
  1. 数值型数据:整数,实数等。
  2. 非数值型数据:文字,图像,图形,声音等。

数据元素和数据项

数据元素

  • 是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。如下图一行可以是一个整体,所以是一个数据元素。
  • 也称之为元素,或称其为记录,结点,或者顶点。
  • 一个数据元素又可以有多个数据项组成

数据结构----基本概念和术语

数据项

  • 数据项构数据元素的不可分割的最小单位
  • 下图中的一条数据记录(数据元素)有多个数据项构成。

数据结构----基本概念和术语

总结

数据,数据元素,数据项之间的关系:

数据>数据元素>数据项

例如:学生表>个人记录>学号,姓名........

数据对象

  • 性质相同数据元素的集合,是数据的一个子集

数据对象与数据元素的区别

  • 数据元素------组成数据的基本单位,与数据的关系是:集合的个体

  • 数据对象------性质相同的数据元素的集合,与数据的关系:是集合的子集

数据结构

  • 数据元素不是孤立存在的,它们存在着某种关系,数据元素相互之间的关系称为结构

  • 是指相互之间存在一种或者多种特定的关系的数据元素的集合

  • 或者说,数据结构是带结构的数据元素的集合

数据结构包括的内容

  • 数据元素之间的逻辑关系,也称为逻辑结构
  • 数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构。
  • 数据的运算实现,既对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现

逻辑结构

  • 描述数据元素之间的逻辑关系
  • 与数据结构的存储无关,独立于计算机。
  • 具体的问题抽象出来的数学模型
逻辑结构的种类
划分方法一
  1. 线性结构:有且只有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和直接后继。比如线性表,栈,队列,串。(一对一
  2. 非线性结构:一个结点可以有多个true直接前趋和直接后继。例如最短路径问题和人机对弈问题。树和图。(多对多
划分方法二
  1. 集合结构: 结构中的数据元素除了同属于一个集合的关系外,无其他任何关系。
  2. 线性结构:结构中的数据之间存在着一对一的线性关系。
  3. 树形结构:结构中的元素之间存在着一对多的层次关系。
  4. 图状结构或网状结构:结构中的数据元素存在着多对多的任意关系。

物理结构(存储结构)

  • 是数据结构及其关系在计算机存储器的结构(存储方式)。
  • 是数据结构在计算机中的表示。
存储结构的种类
  1. 顺序存储结构:用一组连续的存储单元按照数据元素的顺序依次的存储数据元素,根据元素之间的逻辑关系由元素的存储位置来表示。类似于C语言的连续数组。
  2. 链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。例如C语言中的指针来实现链式存储和结构,存储元素的同时,在给与一个指针指向另一个元素。我们在存储一个元素本身的同时,还存储了下一个元素的地址
  3. 索引存储结构
  4. 散列存储结构

数据结构和存储结构的关系

  • 存储结构是逻辑关系的映像与元素的映像。
  • 逻辑结构是数据结构的抽象,存储结构是数据结构的实现。
  • 两者综合起来建立了数据元素之间的数据结构。
收藏
评论区

相关推荐

C++概述
概述 C 是静态,可编译,通用,大小写敏感,格式自由的编程语言,它支持程序化,面向对象的,和泛型编程方式。 C 被看作是中间层语言,因为它同时包含了低级语言和高级语言的特性。 C 是于 1979 年在新泽西的茉莉山丘的贝尔实验室由 Bjarne Stroustrup 开发的,它是 C 语言的加强版,最开始它被称作 “C with Classes”,但是
学完了C++语法之后该学什么??(数据结构与算法篇)
数据结构与算法 数据结构与算法,我就不想多说了,重要性不用说。应届生秋招和春招最大的优势估计就是数据结构与算法的掌握了。上面三门课程的学习,基本也都是离不开数据结构的,对于如何学习数据结构与算法,我觉得可以在写一篇文章了,所以数据结构与算法的学习,我这里不写了。 论面试,我觉得 操作系统计算机网络数据库   数据结构算法 这四大块是问的最多的,所以我写的
计算机专业,如何轻松学习C/C++编程?
C/C 是比其他语言难些,但差距不大。以往很多人说 C/C 难,那是旧时代的产物。那时操作系统(例如 DOS)还没有如今这么强大的功能,像界面设计和底层设计都要靠应用程序来实现。由于 C 的高效率,高端设计大都用 C 语言和汇编语言来写,程序搞得很复杂,初学者有望尘莫及的感觉。C 的简捷表达法比 Fortran, Cobol, Pascal 和 BASIC
【Golang】Go入门及进阶书籍推荐
Go入门教程全集 链接: https://pan.baidu.com/s/1mWD7DpRa56WXi7WmNaohOg(https://pan.baidu.com/s/1mWD7DpRa56WXi7WmNaohOg) 提取码: ki1e Cloud.Native.Go.pdf C和指针.pdf C面向对象多线程编程.pdf Design Patt
【程序人生】毕业入职后,C++转Go语言工作半年感受
我在大学期间就听说了Go并学习了一段时间,坦白的说,那时候对Go是比较无感的,因为并 没有看到Go特别亮眼的地方,可能和我使用C、C、Java有关,这三
数据结构----基本概念和术语
数据结构基本概念和术语 数据 数据是输入计算机且能被计算机处理的各种符号的集合 1. 信息的载体 2. 是对客观事物的符号化的表示 3. 能被计算机识别,存储和加工 数据包括 1. 数值型数据:整数,实数等。 2. 非数值型数据:文字,图像,图形,声音等。 数据元素和数据项
使用 VS Code 来开发和调试 Python 程序
(简称 VSCode)是微软出品的一款支持多种语言的免费 IDE(集成开发环境)。VSCode 轻量而强大,支持 Windows、macOS 和 Linux。内置支持 JavaScript、TypeScript 和 Node.js,并且拥有一个丰富的插件生态系统来支持其它语言(C/C、C、Java、Python、PHP、Go 等)和运行时(.Net 和
C 语言代码大全
1 两个数组的合并 题目描述 已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。 输入 输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。 输出 输出合并后的mn个整数,数据之间用空格隔开。输出占一行。 样例输入 4
.c文件和.h文件的关系
最近在做一个稍微有些复杂的项目。涉及到的函数、结构体、变量等比较多。通常,我编写c/c项目的方式是,有一个main.c文件,该文件的main函数作为接口,调用其他函数。所有其他函数按功能,分别放在不同的.h文件中,这样的方式在编译和运行上肯定是没有什么
C语言入门系列之1.C语言概述和上机运行简单C程序
一、C语言的发展过程C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言,同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THE C PROGRAMMING LANGUAGE》一书 ,通常简称为《K&R》,也有人称之为 《K&R》标准。但是,在《K&R》中并没有定义一个完整的C语言标
如何掌握 C 语言的一大利器——指针?
一览:初学 C 语言时,大家肯定都被指针这个概念折磨过,一会指向这里、一会指向那里,最后把自己给指晕了。本文从一些基本的概念开始介绍指针的基本使用。 内存考虑到初学 C 语言时,大家可能对计算机的组成原理不太了解,所以这里先简单介绍一些“内存”这个概念。 众所周知,任何东西都需要有物理载体作为基础。 比如说人产生的“思维”这个东西,我们看不见摸不着,但并不是
关于根据颜色刷选图像内容的问题
在CSDN本人博文《OpenCVPython图像处理:用inRange刷选图像中指定颜色对象案例》(请点击文章底部最下方的“阅读原文”跳转CSDN阅读原文)中介绍了根据颜色刷选图像内容相关的概念及实现,介绍了通过使用inRange在HSV颜色空间中识别制定颜色的图像内容,文中概要介绍了HSV颜色空间中进行制定颜色对象识别的要点,使用的inRange函数的语法
手写strcpy和memcpy代码实现
本篇文章聊一下strcpy和memcpy的代码实现,这两个也是c和c++面试中常考的问题点。 1. 手写strcpy首先看一下,一份标准的strcpy的实现如下:cchar strcpy(char strDest, const char strSrc) assert( (strDest ! NULL) && (strSrc ! NULL)); char ad
c++类和继承面试点25连问
本篇文章连问面试时经常会遇到的类和继承相关25个问题,看看你能回答出几道题呀。还是先看一下思维导图,如下: 1. c++的三大特性是什么c++的三大特性,说白了其实就是面向对象的三大特性,是指:封装、继承、多态,简单说明如下: 封装是一种技术,它使类的定义和实现分离,也就是隐藏了实现细节,只留下接口给他人调用,另外封装还有一层意义是它把某种事物具现出属性和方
JNI 基础 - JNIEnv 的实现原理
一.JNI 开发的一般流程在 windows 系统上面我们经常能看到很多类似于 xxx.dll 的文件,在做 android 开发的时候我们能看到很多 xxx.so 的文件。这些都是啥呢?其实就是用 c 和 c++ 实现生成的动态库,供 windows 和 android 系统来调用。我们解压 QQ 和支付宝的 apk 找到它的 libs 目录下,会发现有大

热门文章

最新文章