1、蛤蟆的数据结构笔记之一入门基本概念
最近一段时间一句名言一直徘徊在我的耳畔,并非警示名言,而是老子中的一句平常话,“合抱之木、生于毫末;九层之台、起于累土;千里之行、始于足下;千里之堤、毁于蚁穴”。这句初中便能开口套用的熟语,这么多年后还是久久不能行于实践。怪世人太急于成功,还是怪自己过于浮夸?
不管是什么,让我们再一次的从脚下走起。
从哪里走起?汇编?C?操作系统?组成原理?离散数学?形式语言?数理逻辑?还是其他?对比分析良久,最后还是选定了数据结构。因为数据结构的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。对IT行业的人有多重要,只有你需要的时候知道。
第一个笔记做一些概念的介绍和记录。
欢迎转载:转载请标明出处:
1、 数据
数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。(《数据结构(C语言版本)》严蔚敏)
2、 数据元素
数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
3、 数据对象
数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型:
(1) 一对一联系(1∶1)
例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。
(2) 一对多联系(1∶N)
例如,某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。
(3) 多对多联系(M∶N)
例如,图3.2表示学生与课程间的联系(“学”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。
4、 数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
现在我们接触到的大数据分析、代码效率提升无不和这个数据结构相关,所以蛤蟆选数据结构起步并没有方向性的错误。
5、 数据的逻辑结构
数据的逻辑结构(也是数据元素之间的逻辑关系)指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括:
逻辑结构包括:
1.集合
数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;
2.线性结构
数据结构中的元素存在一对一的相互关系;
3.树形结构
数据结构中的元素存在一对多的相互关系;
4.图形结构
数据结构中的元素存在多对多的相互关系。
6、 数据的物理结构
数据的物理结构指数据的逻辑结构在计算机存储空间的存放形式。
数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
7、 抽象数据类型
抽象数据类型(AbstractData Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。
8、 数据类型
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
数据类型包括原始类型、多元组、记录单元、代数数据类型、抽象数据类型、参考类型以及函数类型。
9、 数学模型
数学模型的历史可以追溯到人类开始使用数字的时代。随着人类使用数字,就不断地建立各种数学模型,以解决各种各样的实际问题。对于广大的科学技术工作者对大学生的综合素质测评,对教师的工作业绩的评定以及诸如访友,采购等日常活动,都可以建立一个数学模型,确立一个最佳方案。建立数学模型是沟通摆在面前的实际问题与数学工具之间联系的一座必不可少的桥梁。