数据结构第一章绪论

本文阐述了程序设计的本质,包括数据表示与处理,重点介绍了数据结构在程序设计中的作用,涉及逻辑结构、存储结构、算法及常用数据处理技术。此外,文章详细解释了数据的概念、元素与项的区别,以及数据结构的类型与描述方法。最后,概述了算法的特性和描述方法,以及评估算法效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                第一章:绪论

程序设计的实质:数据表示和数据处理。

数据表示:能够储存在计算机的内存的这项任务。

数据处理:一个实际问题的求解必须满足各项处理要求的这项任务。

                                        1.1数据结构在程序设计中的作用

程序设计的一般过程

                                             1.2 本书讨论的主要内容

非数值问题的数据组织和处理:

(1)数据的逻辑结构:线性表、树、图等数据结构,其核心是如何组织待处理的数据结构以及数据之间的关系。

(2)数据的存储结构:如何将线性表、树、图等数据结构存储到计算机的存储器中,其核心是如何有效的存储数据以及数据之间的逻辑关系。

(3)算法:如何基于数据的某种存储结构实现插入、删除、查找等基本操作,其核心是如何有效地3处理数据。

(4)常用  数据处理技术:包括查找技术排序技术、索引技术等。

1.3数据结构的基本概念

数据:是信息的载体,在计算机科学中是指所有能输入到计算机中并能被计算机程序识别和处理的符号集合。

数据可以分为两大类:一类是整数、实数等数值数据;一类是文字、声音、图形和图像等非数值数据。(在计算机中,图形和图像是两个不同的概念,图像由计算机产生,图像时真实的场景或图片输入计算机的。)

数据元素:数据的基本单位,在算计机程序中通常作为一个整体进行考虑和处理。

数据项:构成数据元素的不可分割的最小的单位。

数据元素具有广泛的含义,一般来说,能独立的、完整的描述问题世界的一切实体都是数据元素。

数据结构:指相互之间存在一定关系的数据元素的集合。

数据元素师讨论数据结构时涉及的最小数据单位,其中的数据项一般不予考虑。按照视点的不同,数据架构分为逻辑结构和存储结构。

数据的逻辑结构:数据元素之间逻辑关系的整体。数据的逻辑结构在形式上可以定义为一个二元组。

根据数据元素之间逻辑关系的不同,数据分为以下四类:

(1)线性结构:数据元素之间存在着一对一的线性关系。

(2)集合 :数据元素之间就是“属于同一个集合”,除此之外,没有任何关系。

(3)树结构:数据元素之间存在着一对多的层次关系。

(4)图结构;数据元素之间存在着多对多的任意关系。

树结构和图结构也称为非线性结构。

数据的逻辑结构常用逻辑图来描述,其描述方法是:将每一个数据元素看做一个结点,用圆圈表示,元素之间的逻辑关系用结点之间的连线表示,如果强调关系的方向性,则用带箭头的连线表示关系。

                                   1.4算法及算法分析



算法是对特定问题求解步骤的一种描述,是指令的有限序列。

算法的5个重要特性:

1、输入

2、输出

3、有穷性

4、确定性

5、可行性

程序:是对一个算法使用某种程序设计语言的具体实现,原则上,算法可以用任何一种程序设计语言实现。(操作系统是一个在无限循环中执行的程序而不是一个算法)

“好”算法的五大特性:

1、正确性

2、鲁棒性(健壮性)

3、简单性

4、抽象分级

5、高效性

算法的描述方法:

1、自然语言:优点是容易理解,缺点是容易出现二义性,并且算法通常都很亢长。

2、流程图:优点是直观易懂,缺点是严密性不如程序设计语言。灵活性不如自然语言。

3、程序设计语言

4、伪代码:不是一种视觉的编程语言,但在表达能力上类似于编程语言,同时极小化了描述算法的不必要的技术细节,是比较合适的描述算法的方法,被称为“算法语言”或“第一语言”。

.度量算法效率的方法:
(1)事后统计:将算法实现,测算其时间和空间开销;
         缺点:(1)编写程序实现算法将花费较多的时间和精力;
                    (2)所得实验结果依赖于计算机的软硬件等环境因素。
(2)事前分析估算,它是对算法所消耗资源的一种估算方法。
2.算法的时间复杂度
定义:若存在两个正的常数c和N,对于任意n>=N,都有T(n)<=c*f(n),则称T(n)=O(f(n))(或称算法在O(f(n))中)。































    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值