数据结构笔记01 一些基本概念

在大二的时候,学校开设了这门课程,那时候觉得这门课程很厉害,但是在当时,并没有好好学习,只是觉得很有趣,那时候的学习,对自己的要求也仅仅只是为了期末考试能够过关,但这个课程名字我是记在心里了,想着总要找个时间来学习他,恰好,这次寒假有了点时间,加之自己准备考研,所以就着手开始了。

说在前面的话

关于内容:只更到树的创建;后面的内容真的是难度有点大,学习时间有限,以后有机会再继续更!
学习资料:程杰老师的《大话数据结构》;
代码语言:C语言;
博文形式:大都是自己参照《大话数据结构》编写的可运行的代码;
更的顺序:也是按照《大话数据结构》这本书的编写顺序;

写的这些主要为了自己以后复习用,大家看了如果觉得有用,请点个赞,非常感谢,如果有问题,也欢迎直接评论指出,谢谢大家!  

废话不多说,下面就开始上主菜!


一些基本概念

第一组:数据、数据对象、数据元素、数据项、数据结构

a. 【数据】:描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合;1. 可输入到计算机中,2. 能被计算机程序处理;
b. 【数据对象】:是性质相同的数据元素集合,是数据的子集;
c. 【数据元素】:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也叫记录;
d. 【数据项】:一个数据元素可以由若干个数据项组成;数据项是数据不可分割的最小的单位;
e. 【数据结构】:不同元素之间不是独立的,而是存在特定的关系我们将这种关系称为结构;数据结构就是互相之间存在一种或多种特定关系的数据元素的集合;
以上是摘抄《大话数据结构》书本的;接下来按照我的理解通过两个例子来区分这些概念;
1。以一张存在数据库的学生信息表为例:
这里写图片描述
数据:就是整张表格的所有数据;从另一层面来讲,数据可单指红色方框的所有数据;
数据对象:所有红色方框的数据组成的学生对象;
数据元素:每一个蓝色方框都是一个数据元素;
数据项:每个绿色方框所对应数据元素的数据,都是数据项;

2。以定义的变量为例:
这里写图片描述
上图左边部分是这些名词的结构,从右边定义的一些变量来区分这些名词:
int a; int b; 就是一些【数据】;
左边下方定义了一个简单的老师结构体

sturct Teacher
{
    int age;
    char name[64];
}

结构体中的年龄和姓名就是【数据项】;
然后在上面红色方框定义了一个老师的结构体数组,数组长度为10;这个结构体数组就可以叫【数据对象】;
然后下面的红色方框中写出来的和没有写出来的数组元素就是【数据元素】;

第二组:逻辑结构、物理结构

a. 逻辑结构:指【数据对象】中【数据元素】之间的相互关系;可分为以下四种:
1。集合结构
2。线性结构(1:1)
3。树形结构(1:N)
4。图形结构(M:N)
b. 物理结构:指数据的逻辑结构在计算机中的存储形式;常见的有四种:
1。顺序存储结构:把数据元素存放在 地址连续 存储单元里,数据简的逻辑关系和物理关系是一致的;例如上面定义的struct Teacher[10] ;此种结构又叫随机存储结构;
2。链式存储结构:把数据元素存放在 任意的 的存储单元里,这组存储党员可以是连续的,也可以是不连续的,因此在每个【数据元素】中都会有一个指针域;这些数据元素就通过指针关联起来;
3。索引;
4。散列;
由1、2两点,就有后面要学的 线性表、栈和队列的两种存储存储结构:顺序存储结构和链式存储结构;

第三组:数据类型、抽象数据类型

a. 数据类型:指一组性质相同的值的集合及定义在此集合上的一些操作的总称;在C语言中按照取值不同,分为两类:
1。原子类型:是不可再分解的基本类型,如 char int float double 等等;
2。结构体类型:由若干个类型组合而成,是可再分解的,如int array[10] 和定义一个结构体等;
指一组性质相同的值的集合及定义在此集合上的一些操作的总称在平常的写代码过程中 ;我对这句话的理解是:在平常的写代码过程中,我们定义两个整型变量;如int a = 10, b = 20; a,b属于整型变量这个集合,然后对变量 a 和 b 进行 + - * / 等一些操作;
b. 抽象数据类型
抽象是指抽取出事物具有的普遍性的本质;
抽象数据类型(Abstract Data Type, ADT):是指一个数学模型及定义在该模型上的一组操作;
对【抽象数据类型】我的理解就是:一个数学模型,在这模型上的操作;如《大话数据结构》中说的马里奥例子,马里奥就是这个模型,然后给这个模型定义一些操作:前进,后退,上跳,打子弹;以及后面要学的 线性表,栈和队列等等,这些都是一个个数学模型,然后在这个模型上定义一些操作,拿线性表来说,一些操作如下:初始化线性表,线性表判空,将线性表清空,获得线性表某个位置的元素值,在线性表某个位置插入、删除一个元素结点,获得线性表长度等等;
描述抽象数据类型的标准格式

ADT 抽象数据类型名
Data
    数据元素之间逻辑关系的定义
Operation
    操作1
        初始条件
        操作结果描述
    操作2
        ......
    操作n
        ......
endADT

大家看了如果觉得有用,请点个赞,非常感谢,如果有问题,也欢迎直接评论指出,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值