408之一 您所在的位置:网站首页 考研c语言数据结构考什么 408之一

408之一

2024-07-01 15:37| 来源: 网络整理| 查看: 265

408之一------数据结构(C语言版) 在《408之一------计算机操作系统》这篇文章中我们已经了解到了408的含义。 本笔记总结是基于《数据结构》(C语言版)(第三版)所总结以及扩展开的。

第一章:概论 第一节:什么是数据结构

首先,我们来了解一下,一个大家都知道的专业—计算机科学与技术,其中计算机科学是指一门研究信息表示和处理的科学,而信息的表示和组织又直接关系处理信息程序的效率。

然后,由于许多系统程序和应用程序的规模很大,结构又相当复杂,因此有必要对程序设计方法进行系统的研究,,这不仅涉及程序的结构和算法,同时也设计程序的加工对象(数据)的结构直接影响算法的选择和效率。从而引出我们即将学习的这门课程—数据结构。

第一小节:数据和数据元素

首先,我们来看看什么是数据? 数据(data):是信息的载体,是对客观事物的符号表示,能够被计算机识别、存储和加工处理。 其实,数据就是计算机程序加工的“原材料”。例如:图像、声音、视频等都可以通过编码而由计算机处理。

然后,我们来看看什么是数据元素?

数据元素(data element):也被称作元素、结点或记录,是数据中具有独立意义的个体,是数据的基本单位,通常在计算机程序中作为一个整体进行考虑和处理,有时,一个数据元素可以划分为若干个数据项(也称字段、域),数据项是数据不可分割的最小单位。例如:成绩表中的学生成绩信息、通讯录中的个人或组织的通信信息等,这些都是数据元素。

第二小节:数据类型和对象

我们了解了数据和数据元素之后,现在我们开始了解一下数据类型和对象, 数据对象:是性质相同的数据元素的集合,是数据的一个子集。 数据类型:是计算机程序中的对象以及定义在这个数据对象集合上的一组操作的总称。

那么数据类型可以分为: 原子数据类型:是由计算机语言所提供的,例如整型、字符型。 结构数据类型:是利用计算机语言提供的一种描述数据元素之间逻辑关系的机制,是由用户自己定义而成的,例如数组类型、结构类型等。

第三小节:数据结构(关系)

数据结构:是指数据对象以及该数据对象集合中的数据元素之间的相互关系(数据元素的组织形式)。 它的研究范围包括:研究数据的逻辑结构和物理结构(数据结构在计算机中的表示),并对每种结构定义相适应的运算;使用某种高级程序设计语言给出各种运算的算法并分析算法的效率;研究各种数据结构在计算机科学和软件工程中的某些应用;讨论数据分类、检索等方面的技术。

逻辑结构:就是数据元素之间的逻辑结构: (1)集合:属于同一个集合 在这里插入图片描述 (2)线性结构:一对一 在这里插入图片描述 (3)树结构:一对多 在这里插入图片描述 (4)图结构:多对多 在这里插入图片描述 物理结构:数据元素以及它们之间的相互关系在计算机存储器内的表示(映像),称为数据的存储结构。 运算:就是对数据元素施加的操作,插入、删除、查找、排序等。这些操作都是具有抽象性。就是我们知道这些操作“做什么”,不必考虑是“怎么做”。

综上所述:数据结构可以这样理解:按某种逻辑关系组织起来的一批数据,应用于计算机语言,按一定的存储表示方式把它们存储在计算机的存储器中,并在这些数据上定义了一个运算的集合。 在不会产生混淆的前提下,可以将数据的逻辑结构简称为数据结构。

那么数据的存储结构可以分为四种基本的存储方法: (1)顺序存储方法:可以用数组来描述。该方法主要用于线性数据结构。还有该方法是将逻辑上相邻的结点存储在物理位置相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。从而得出为顺序存储结构。 (2)链接存储方法:该方法不要求逻辑上相邻的结点在物理位置上也相邻,结点之间的逻辑关系是由附加的指针来表示的。从而得出为链式存储结构。 (3)索引存储方法:该方法通常是在存储结点信息的同时,建立附加的索引表,其中每一项称为索引项(关键字(key),地址)。 (4)散列存储方法:该方法的基本思想是根据结点的关键字直接计算出该节点的存储方法。

综上所述:数据的逻辑结构+数据的存储结构+数据的运算(操作)=数据结构。 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。 我们之前应该听说过:算法(数据运算)+数据结构(数据的逻辑结构和存储结构)=程序。这是由瑞士计算机科学家沃思(N.Wirth)曾指出的。 总之,解决问题的关键: (1)选取合适的数据结构表示问题 (2)写出有效的算法

第二节:算法和算法分析

算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 特性:

有穷性确定性(不二性)可行性输入输出

总之,如果一个算法采用计算机可执行的语言来写可执行的语言来写,那么它就是一个程序。 当然,设计一个好的算法应该考虑以下几点:

正确性健壮性可读性执行算法所耗费的时间执行算法所耗费的存储空间,其中主要考虑辅助空间。

最后,我们来看看算法分析 一个好的算法应该考虑这两点:时间资源和空间资源。 (1)时间复杂度(时间代价) (2)空间复杂度(空间代价) 以上内容就是第一部分。 第二部分链接(正在制作中。。。。。。):



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有