计算机软件基础知识
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a1 , a2
,
a3
, a4
, …………
an-1 , an
队 头
队 尾
队列的主要运算
设臵一个空队列; 插入一个新的队尾(rear)元素,称为进队; 删除队头(front)元素,称为出队; 读取队头元素;
栈和队列
队列的主要运算 队空时,令rear=front=0; 元素个数=rear-front 当有新元素入队时,尾指针加1,当有元素出队时,头 指针加1。故在非空队列中,头指针始终指向队头元素 前一个位臵,而尾指针始终指向队尾元素的位臵 3 2 rear e3 e2 front e1 (b) (b)e1,e2,e3入队 rear =4 e4 e3
队 尾
树与二叉树
树的定义:由一个或多个结点组成的有限集合。仅有一个根 结点,结点间有明显的层次结构关系。
A
T1 E
B
C
D I J
F
G
H
T3 L K 现实世界中,能用树的结构表示:学校的行政 关系、书的层次结构、人类的家族血缘关系等。
T2
M
树与二叉树
树的基本概念:
结点(Node):树中的元素 A 结点的度(Degree):结点拥有的子树数。
1
计算机软件基础知识
软件基础
算法
算法的基本概念
٭算法:是一组有穷指令集,是解题方案的准确而完 整的描述。通俗地说,算法就是计算机解题的过程。 算法不等于程序,也不等于计算方法,程序的编制 不可能优于算法的设计。 ٭算法的基本特征:是一组严谨地定义运算顺序的规则,每
一个规则都是有效的,是明确的,此顺序将在有限的次数下终 止。算法不等于程序,程序不可能优于算法。
C
以先序遍历D L R 为例演示遍历过程
软件工程基本概念
软件的定义
软件(software)是计算机系统中与硬件(hardware)相互依存的另一 部分。软件包括三个部分:程序(program)、相关数据(data)、说明文档 (document)。
软件的特点
软件是一种逻辑实体,不是物理实体,具有抽象性。 软件没有明显的制造过程。 软件在使用过程中,没有磨损、老化问题 软件依赖与硬件和环境,导致了移植问题 软件是复杂的,而且以后会更复杂 软件的成本相当昂贵 软件工作牵涉到很多社会因素
٭2.算法的控制结构
▪ 算法中各操作之间的执行顺序 ▪ 描述算法的工具通常有传统流程图、N-S结构化流 程图、算法描述语言等 ▪ 算法可以用顺序、选择、循环三种基本机构组合 而成。
算法基本设计方法
(1)列举法:根据问题,列举所有可能的情况,并用问题 中给定的条件检验哪些是需要的,哪些是不需要的。 (2)归纳法:通过列举少量的特殊情况,经过分析,最后 找出一般的关系。 (3)递推:是指从已知的初始条件出发,逐次推出所要求 的各中间结果和最后结果。 (4)递归:将问题逐层分解的过程。 (5)减半递推技术: “减半”,是指将问题规模减半, 而问题性质不变; “递推”,是指重复“减半”过程。 (6)回溯法:分析问题,找出一个解决总线索,然后沿着 这个线索逐步试探。
树与二叉树
二叉树(Binary Tree)的定义 因为树的每个结点的度不同,存储困难,使对树的处理算法 二叉树一种特殊的树型结构,特点是树中每个结点只有两棵 子树,且子树有左右之分,次序不能颠倒。 很复杂。所以引出二叉树的理论。
仅有 空二叉树 根结点
右子树 为空
左子树 为空
左右子树 均非空
二叉树的五种基本形态
12
7
完全二叉树
非完全二叉树
二叉树的基本性质
A、二叉树的第i层上至多有2i-1(i 1)个结点。 B、深度为h的二叉树中至多含有2h-1个结点。 C、若在任意一棵二叉树中,有n0个叶子结点(度为0),有 n2个度为2的结点,则:n0=n2+1 D、具有n个结点的完全二叉树的深度为[log2n]+1,其中 [log2n]表示log2n 的整数部分。 1
软件工程基本概念
软件危机
早期的软件主要指程序,采用个体工作方式,缺少相关文档,质量低, 维护困难,这些问题称为“软件危机”,软件工程概念的出现源自于软件 危机。
软件工程
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的 原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件 质量、降低软件成本。
进栈
出栈
an …. a2
其中a1是栈底元素, an是栈顶元素。 栈顶(top):允许插入和删除的一端; 栈顶 约定top始终指向新数据元素将存放的位臵。 栈底(bottom):不允许插入和删除的一端。 栈底
a1
栈和队列
队列:限定只能在表的一端进行插入,在表的另一端进行删除的线性表。
此种结构称为先进先出(FIFO)表。
2 3
4 8 910Fra bibliotek511 12
6
13 14
第三层 (i=3),有23-1=4个节点 深度h=4,共有24-1=15个节点 n0=8,n2=7,n0=n2+1 7 15个节点,深度=[log215]+1=4
15
二叉树的遍历
遍历是指按某条搜索路线寻访树中每个结点,且每个 结点只被访问一次。 按先左后右的原则,一般使用三种遍历:
满二叉树
特点:所有分支结点都存在左右子树,且所有叶 子结点都在同一层上。
1
2 3
4 8 9
10
5
11 12
6
13 14
7
15
完全二叉树
特点:除最后一层外,每一层都取最大结点数, 最后一层结点都集中在该层最左边的若干位臵。
1 2 3 5 9
10
11 12
1 2 3 5 9
10 11
4
8
6
7
4 8
6
图形结构
图形结构:节点间的连接任意
1
4
D={ 1 , 2 , 3 , 4}
R={(1,2) , (1,3) , (1,4) , (2,3) 2
1 D={ 1 , 2 , 3 } R={ (1,2) , (2,3) , (3,2) , (1,3) } 2 3 有向图
3
(3,4) , (2,4) } 无向图
٭基本特性
▪ ▪ ▪ ▪ 可行性:根据实际问题设计的算法,执行得到满意结果 确定性:每一步骤必须有明确定义,不允许有多义性。 有穷性:算法必须能在有限的时间内做完。 输入和输出:拥有足够的情报,方可执行。
算法的基本要素
٭1.对数据对象的运算和操作
▪ ▪ ▪ ▪ 算术运算:+、-、×、÷等 逻辑运算:>、<、=、>=、<=、!=等 关系运算:and、or、not等 数据传输:w、r等
否则,不能称为线性结构。 学 生 成 绩 表
学号 9861109 9861107 9861103 姓名 张卓 刘忠赏 胡孝臣 成绩 100 95 86
树形结构
树形结构
非线性 结构
全校学生档案管理的树形结构的组织方式
树形结构
A
D
B C E F G H
A B C E D F G H
树形结构 —结点间具有分层次的连接关系
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
最简单的办法之一是建立一张表,每一本书的信 息在表中占一行,如
数据结构基本概念
数据元素在 计算机中的表示
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。 从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9
结点的层次:从根结点开始算起,根为第一层。 B C D 叶子(Leaf):度为零的结点,也称端结点。 T1 孩子(Child):结点子树的根称为该结点的孩子结点。 兄弟(Sibling E ):同一双亲的孩子。 F G I J H 双亲(Parent):孩子结点的上层结点,称为其的双亲。 深度(Depth): 树中结点的最大层次数。 T2 M L M棵互不相交的树的集合。 K T3 森林( Forest):
1
0 (a)
front
(c)
(c) e1,e2出队,e4入队
rear=front=0(队空)
栈和队列
循环队列:首尾相接的队列,逻辑上形成一个环状。
a1 , a2 , a3 , a4 , ………… an-1 , an
队 头 计算循环队列长度: ①front=rear,队列长度=0; ②front<rear,队列长度=rear-front; ③front>rear,队列长度=rear+size -front
图形结构
2、数据的存储结构
A 顺序存储
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
线性结构和非线性结构
线性结构条件
(1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 (3)首节点无前件,尾节点无后件。
非线性结构:不满足线性结构条件的数据结构 注意:在一个线性结构中插入或删除任何一个节点后还应是线性结构;
算法效率度量——算法的复杂度
算法的复杂度:时间复杂度、空间复杂度
٭算法的时间复杂度
▪ 算法时间复杂度是指执行算法所需要的计算工作量。 ▪ 工作量用算法所执行的基本运算次数来度量,而算法所执 行的基本运算次数是问题规模的函数,即 算法的工作量=f(n)
٭算法空间复杂度
▪ 算法空间复杂度是指执行这个算法所需要的内存空间。 ▪ 存储空间包括:①算法程序所占的空间、 ②输入数据所 占的空间、③算法执行过程中所需要的额外空间
顺序存储与链式存储
顺序存储
٭
存储地址 存储内容 Lo Lo+m
元素1 元素2 ……..
常用于线性数据结构, 将逻辑上相邻的数据元 素存储在物理上相邻的 存储单元里。
三个弱点
插入或删除操作时,需 移动大量元数。 ٭长度变化较大时,需按 最大空间分配。 ٭表的容量难以扩充
٭
Lo+(i-1)*m
٭对各种数据结构进行的运算
主要目的是为了提高数据的效率。所谓提高数据处理的效
率,主要包括两个方面:一是提高数据处理的速度,二是尽量节省在 数据处理过程中所占用的计算机存储空间。
数据结构类型
线性表 A.线性结构 栈 队 B.非线性结构
1.数据的逻辑结构 数 据 结 构 的 三 个 方 面
树形结构
元素i
……..
Lo+(n-1)*m 元素n Loc(a)=Lo+(i-1)*m
每个元 素所占 用的存 储单元 个数
顺序存储与链式存储
1345 元素1 1400
head
元素2 1536 元素3 1346 元素4
∧
存储地址
1345 1346
存储内容
元素1 元素4
指针
1400 ∧
…….
1400 ……. 1536
先序遍历(D L R): 访问根结点,按先序遍历左子树,按先序遍历右子树。 中序遍历(L D R): 按中序遍历左子树,访问根结点,按中序遍历右子树。 后序遍历(L R D): 按后序遍历左子树,按后序遍历右子树,访问根结点。 二叉树为空时,执行空操作,即空二叉树已遍历完。
二叉树的遍历
先序遍历:D L R 中序遍历:L D R 后序遍历:L R D A B B T1 D T2 C D T3 D L R ABDC BDAC DBCA D A D L R D L R L R
数据结构基本概念
数据结构是一门研究数据组织、存储和运 算的一般方法的学科。
整数(1,2) 能输入到计算机中 、实数(1.1,1.2) 并能被计算机程序处理的 字符串(Beijing)、 符号的集合。 图形、声音。
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
计算机管理图书问题 图书馆里有各种卡片:有按书名编排的、有按作 者编排的、有按分类编排。 如何将查询图书的这些信息存入计算机中既要考 虑查询时间短,又要考虑节省空间
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
对数据结构中的节点进行操作处理 (插入、删除、修改、查找、排序)
数据结构研究的主要内容
数据结构主要研究以下三个方面的问题: ٭数据的逻辑结构:数据集合中各元素的信息,及元 素之间所固有的逻辑关系(前后件关系)
٭数据的存储结构:各数据元素在计算机中的存储关 系
……..
元素2 …….. 元素3
…….
1536 ……. 1346
链式 存储 的地 址映 射表
栈和队列
栈和队列是两种运算时要受到某些特殊限制的线 性表,故也称为限定性的数据结构。 栈:限定只能在表的一端进行插入和删除的特殊的线性表,此
种结构称为后进先出。
设栈s=(a1,a2,…,ai,…,an)