《数据结构》
第五版
清华大学自动化系
李宛洲
2004年5月
阴阳师桌面版一直数据加载中第一章 数据结构--概念与基本类型
1.1概述
1.1.1数据结构应用对象
计算机应用可以分为两大类,一类是科学计算和工业控制,另一类是商业数据处理。相应的
计算机语言也是如此,比如FORTRAN语言、C、汇编语言主要适应于前者,比如JAVA、Powerbuilder(关系数据库平台开发工具)、Visual C等主要适应于后者。面向工业控制与科学计算的内容主要涉及它的计算方法、效率与速度等因素,某一特定的测控对象有特定的算法,在这里我们主要侧重于解决问题的方法研究,比如高次方程的叠代算法,快速富氏变换的蝶型算法等。面向商业管理是要解决海量数据的管理与关联分析,即使是一个特定的对象也有通用的数据管理形式,比如商业数据库系统,无论何种具体应用,它都是大量的表格一类的数据处理形式,在海量数据中检索与查询是一类至关重要的操作工具,于是,数据的逻辑结构与物理组织形式是我们要解决的主要问题,比如表数据的存储形式,索引结构等,也就是数据结构问题。
什么是数据结构?数据结构的研究对象是数据元素,目的是建立数据元素在计算机中的表达方法,简单的说,在一有限的数据元素集合里,元素与元素之间相互关系的描述,称为它的数据结构。比如,例1.1描述了有限个数据元素集合的字典的数据结构关系。
例1.1 字典的数据结构
D={(able,能干的),(apple,苹果), (bug,虫), (code,代码), (cool,酷),…, (x-ray,X光),(year,年),(zo
o,动物园)}
这里,单词是数据元素检索关键字,单词与注释构成数据元素(节点),元素节点之间所表达的关系是按字母的顺序排列,这就是我们给字典这一特定对象选定的数据结构。另一个例子1.2描述了事务处理中经常见到表格的数据结构形式。
例1.2 线性表数据结构
表1.1 设备统计清单
序号 | 设备名称 | 型号 | 单价(元) | 数量 |
1 | 车床 | A64 | maven板面是国产的吗5500 | 5 |
2 | 台钻 | C7 | 3200 | 29 |
3 | 铣床 | X-2 | 4000 | 14 |
4 | 铣床 | X-34 | 6700 | 1 |
如表1.1所示设备统计表是一种线性结构,为了把一个线性表转换成可以用计算机处理的形
matlabfor循环语句举例式,或者说选择表在计算机中的数据结构形式,需要采取如下步骤:首先,水平方向看表的每一行是一条记录,我们称之为向量ai,ai=(序号,设备名称,型号,单价,数量),ai的各分量是设备这一客观实体的属性,属性的取值就是实体记录,所以,从纵向看,表是成由一组记录所组成的,记录是表的数据结构元素,定义如下:
struct BILL{
char Facility[20];
char Type[10];
int Cost;
int Number;
};
表结构表达的记录(节点元素)之间的关系是<ai,ai+1>,所以我们称表结构是线性的,可以用C语言的数组变量定义相应的数据关系为:
struct BILL a[4];
同所有的数组变量一样,结构数组的下标也是从0开始的。因此,在计算机中可以用BILL结构变量型数组A[]来描述表1.1所表达的关系,也就是线性表的数据结构形式:冒泡排序代码c语言
a0=(1,车床,A64,5500,5)
a1=(2,台钻,C7,3200,29)
a2=(3,铣床,X-2,4000,14)
a3=(4,铣,X-34,6700,1)
1.1.2学习数据结构的基础
数据结构建立在计算机语言之上。学习计算机语言是学习编程方法,我们应该如何用一种具体的计算机语言实现一个算法。学习数据结构,是学习如何描述一个应用对象的数据元素(属性构成),如何根据应用对象的特点构造数据元素之间的逻辑关系以及内存中的存储实现,这是二者的区别。
设计数据结构的时候要有相应的计算机语言工具支持,在BASIC、FORTRAN、C语言中,只有C是面向数据结构应用的工具语言。比较一下C和其它语言的区别就可以知道原因,因为它有定义数据结构基本单元的能力,并有地址的运算能力,这两点是非常重要的。通过定义数据结构的基本单元,我们可以把不同数据类型的变量聚集在一个节点内;通过地址运算,我们可以把数据结构的逻辑关系在计算机内存中用不同存储方式实现。在C语言中定义数据结构元素是通过结构体实现的。
1.1.2.1 C语言中的结构体
log4j2 配置详解properties在学习C语言的时候,同学对数组很熟悉,比如一个整型量的数组定义如下:
int array[100];
它表达了一组整型量的集合,在C语言中基本变量的类型有整型量,浮点变量,字符变量等,将所有基本变量聚合在一起的方法是定义结构体,用结构体作为基本元素描述事物的属性信息,比如表1.1那样,我们称之为数据结构元素,或者节点。关于数据结构元素在C语言中给出了明确定义:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论