- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 算法与数据结构
第七章 算法与数据结构 数据结构 一、 数据结构与算法 二、 数组与线性表 三、 栈 四、 队列 五、 树、二叉树 一、 数据结构与算法 数据(Data): 一切能够由计算机接受和处理的对象。 数据结构(Data structure): 数据之间的相互关系,即数据的组织形式。研究数据结构,是指研究数据的逻辑结构和物理结构 逻辑结构:数据元素之间的逻辑关系 线性结构:线性表、堆栈、队列、数组、串等都是线性结构。 非线性结构:如树形结构、图等。 物理结构:数据元素在计算机存储器中是如何存储的 算法(Algorithm):对特定问题求解步骤的一种描述。 算法是一个有穷的规则序列,这些规则决定了解决某一特定问题的一系列运算。由此问题相关的一定输入,计算机依照这些规则进行计算和处理,经过有限的计算步骤后能得到一定的输出。 算法的复杂度 算法的复杂性包括时间复杂性(所需运算时间)和空间复杂性(所占内存储空间),重点是时间复杂性 。 一个算法所需的运算时间通常与所解决问题的规模大小有关。用n 表示问题规模的量 ,把算法运行所需的时间T表示为n的函数,记为T(n)。 不同的T(n)算法,当n增长时,运算时间增长的快慢很不相同。 算法的运行时间往往还与具体输入的数据有关,通常用以下两种方法来确定一个算法的运算时间: 1. 平均时间复杂性: 研究同样的n值时各种可能的输入,取它们运算时间的平均值。 2. 最坏时间复杂性: 研究各种输入中运算最慢的一种情况下的运算时间。 评价算法的一般原则 正确性:算法应能正确地实现处理要求 。 易读性:有助于对算法的理解,便于纠正和扩充 。 简单性:使证明其正确性比较容易,对算法进行修改也比较方便。 高效率:达到所需的时、空性能。 算法必须满足以下准则 有穷性:一个算法的执行步骤必须是有限的。 确定性:算法中的每一个操作步骤的含义必须明确。 可行性:算法中的每一个操作步骤都是可以执行的。 输入:一个算法一般都要求有一个或多个输入量(个别的算法不要求输入量)。这些输人量是算法所需的初始数据。 1.下面叙述正确的是______。 A. 算法的执行效率与数据的存储结构无关。 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数(指的是算法所占用的空间)。 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止。 D. 以上三种描述都不对。 二、 数组与线性表 数组 数组是由一些单元组成的,每个单元对应着一组下标值和一个数组元素。在计算机中,表示数组是采用一组连续的存储单元顺序地存储各数组元素。数组元素可以是基本数据类型,如整数型、实数型、字符型等,同一数组中各个元素必须是同一数据类型,每个数组元素都占有相同数量的存储单元。 线性表 线性表是由有限数目的相同类型元素组成的序列。表中的数据元素,除了第一个和最后一个以外,都有一个且只有一个前驱元素,同时也都有一个且只有一个后继元素; 线性表的元素个数n称为这个表的长度,当n=0时,这个表叫做空表。 单链表 三、栈 1.定义:限定只在表的一端(表尾)进行插入和删除操作的线性表 特点:后进先出(LIFO),允许插入和删除的一端称为栈顶 (top),另一端称为栈底(bottom) 2. 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。 A. ABCED B. DBCEA C. CDABE D. DCBEA 四、队列 限定在表的一端进行删除,在表的另一端进行插入操作的线性表。 允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)。特性:FIFO(First In First Out) 3 栈和队列的共同点是______。 A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 4 下列关于队列的叙述中正确的是______。 A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 五、树 树是n个结点的有限集合T,在一棵非空树中(n0)有且仅有一个称作根的结点;其余结点可分为m个(m≥0)互不相交的集合T1,T2……Tm,其中,每一个集合本身又是一棵树,并称为根的子树。 树结构的重要术语与概念 叶子 没有后继结点的结点称为叶子(或终端结点),如图中的D、E、F、G、H、I、J
文档评论(0)