数据结构与算法复习:一


一、先了解几个人

① 号目标人物

在这里插入图片描述
尼古拉斯·沃斯(Niklaus Wirth)1934年2月15日—瑞士计算机科学家
著名的一条言论:算法+数据结构 = 程序设计
Pascal之父、结构化程序设计的先驱 Niklaus Wirth 最
著名的一本书,书名:《算法+ 数据结构= 程序》

② 号目标人物

在这里插入图片描述
洋洋数百万言的多卷本《计算机程序设计的艺术》堪称计算机科学理论与技术的经典巨著,
有评论认为其作用与地位可与数学史上欧几里得的《几何学原理》相比。本书作者
唐纳德·克努特(Donald ErvinKnuth)因而荣获1974年度的图灵奖。

这个人可牛了!!!
他1938年出生,25岁毕业于加州理工学院数学系,博士毕业后留校任教,28岁任副教授,
30岁加盟斯坦福大学计算机系,任教授从31岁起开始出版他的历史性经典巨著。
就是The Art Computer Programming,他本来是计划共写7卷的,然而出版三卷后已震惊世界,
使他获得计算机科学界的最高荣誉奖 图灵奖,此时他年仅36岁

在1968年美国唐纳德·克努特(Donald Ervin Knuth)教授开创了数据结构的最初体系,
所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。
而 “数据结构”作为一门独立的课程在国外也是从1968年才开始设立的。

二、数据结构的兴起和发展

1.客观世界与计算机世界的关系

 - 计算机科学是研究信息表示和信息处理的科学 
 - 信息在计算机内是用数据表示的
 - 实际就是计算机对问题的一个求解

用计算机解决实际的问题的实质可以用下图表示
在这里插入图片描述

2.程序设计的实质是什么

 - 数据表示:将数据存储在计算机中 
 - 数据处理:处理数据,求解问题
 - 数据结构问题起源于程序设计

3.数据结构是随着程序设计的发展而发展的

1.无结构阶段:在简单数据上作复杂的运算
  计算机刚出现的时候只要是在做数学运算,算一些力学问题,弹道啊,数据简单但是运行相对复杂。
2.结构化阶段:
  数据结构+算法=程序
3.面向对象阶段: (对象+行为)=程序  
4.到现在为止数据结构也是在不断的发展,随着新的应用的出现,也会产生更多,更好的,更快的数据结构,
  来解决应用中的问题

三.研究对象与基本概念

1.例子一:学籍管理问题(表结构)

完成什么样的功能?各表向之间是什么关系?

在这里插入图片描述


这样的数据在计算机中是如何存储的,这是我们要研究的,我们怎么样把这个东西给存进去存到计算机里边去?

2.例子二:人机对弈问题(树结构)

在这里插入图片描述

大脑的思考与机器的应对,机器遍历所有可行方案。

3.例子三:教学计划编排问题(图结构)

如何表示课程之间的先修关系

在这里插入图片描述

根据图表可以建立这样的一个有向图

在这里插入图片描述

4.计算机求解问题

问题------>抽取出问题的模型------求模型的解
问题有哪些呢?
 >数值问题、非数值问题
   >数值问题->求解的方程
   >非数值问题->数据结构

5.数据结构与算法课程的研究对象

是研究非数值计算问题中计算机的操作对象以及他们之间的关系和操作的学科

6.数据结构的基本概念

1.数据:一切能输入到计算机中并能被识别和处理的符号结合

>数值数据:整数、实数等
>非数值数据:图形、图像、声音、文字等

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

3.数据项:构成数据元素的不可分的最小单位
        比如 学号 姓名  性别  电话
4.数据对象:具有相同性质的数据元素的集合
      成绩信息   棋盘信息 等---是一个广泛的概念,在java中通常来描述一个具体存在的实体或抽象的实体
5.结点:数据元素在计算机内的位串表示--

6.域(字段):数据元素中数据项在计算机内的表示
  >从计算机表示的角度来看,域就是就是数据项,节点就是数据元素
数据结构
  ○ 数据元素之间的相互关系,这种关系是抽象的,及不涉及数据元素的具体内容,是数据元素及其相互间的关系的数学描述
  ○ 相互之间存在一定关系的数据元素的集合
  ○ 按照视点的不同,数据结构分为逻辑结构和存储结构
  ○ 数据的逻辑结构(数据的逻辑结构是从具体问题抽象出来的数据模型。 )
数据元素之间的抽象关系,数据元素之间逻辑关系的整体
  ○ 学籍管理问题中,表项之间的逻辑关系指的是什么? 线性表
  ○ 人机对弈问题中,格局之间的逻辑关系指的是什么?  数
  ○ 教学计划编排问题中,课程之间的逻辑关系指的是什么? 图
数据的存储结构
  ○ 又称物理结构,是数据及其逻辑结构在计算机中的表示。
  ○ 实质上是内存分配,以确定元素及元素之间关系的表示。
  ○ 在具体实现时,依赖于计算机语言。
数据结构从逻辑结构上分为四类(及四种基本的逻辑结构)
  ○ 线性表 数 图  没有任何关系也是一种关系
  ○ 集合:数据元素之间就是“属于同一个集合”   
  ○ 数据线性结构:数据元素之间在这一对一的线性关系 (链表一个接着一个)
  ○ 树形结构:数据元素之间存在着一对多的层次关系
常用的存储结构
  ○ 顺序存储结构(数组)下标
      > 用一组连续的存储单元依次存储数据元素,数据之间逻辑关系由元素的存储位置表示。
  ○ 链接的存储结构(链表)指针
      > 用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示  
逻辑结构与存储结构的关系
  ○ 数据的逻辑结构属于用户视图,是面向问题的,反映了数据内部的构成方式;
    数据的存储结构属于具体实现的视图,是面向计算机的。
  ○ 一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,
    其数据处理的效率往往是不同的。  
数据结构与算法的学习内容
  ○ 数据对象的结构形式,各种数据结构的性质(逻辑结构);
  ○ 数据对象和“关系”在计算机中的表示(物理结构/存储结构);
  ○ 数据结构上定义的基本操作(算法)及其实现;
  ○ 算法的效率(时间和空间)--时间复杂度和空间复杂度;
  ○ 数据结构的应用,如数据的分类(排序),检索(查找)等   
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值