欢迎来到天天文库
浏览记录
ID:46852598
大小:158.50 KB
页数:26页
时间:2019-11-28
《公共基础教程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、公共基础教程第1章数据结构与算法1.1算法的复杂度1.算法的基本概念利丿IJ计算机算法为计算机解题的过程实际上是在实施某种算法。(1)算法的基木特征算法一般具冇4个基木特征:可行性、确左性、冇穷性、拥冇足够的情报。(2)算法的基木运算和操作算法的皋木运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。(3)算法的3种棊木控制结构算法的3种基本控制结构是:顺序结构、选择结构、循环结构。(4)算法基木设计方法算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、冋溯法。(5)指令系统所谓指令系统指的是一个计算机系统能执行的所有指令的集合。2.算法复朵度算法复杂度包括时间复杂
2、度和空间复杂度。注意两者的区别,无混淆,见表l-loH称描述时间复杂度执行算法所需要的计算匚作量空间复杂度执行这个算法所需要的内存空间1.2数据结构1.2.1逻辑结构和存储结构1.数据结构的基本概念(1)数据结构指相互有关联的数据元索的集合。(2)数据结构研究的3个方而%1数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;%1在刈数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;%1对各种数据结构进行的运算。1.逻辑结构数据的逻辑结构是对数据元索Z间的逻辑关系的描述,它对以用一个数拯元索的集合和定义在此集合中的若干关系來表示。数据的逻辑结构冇两个要素:一
3、是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素Z间的前后件关系,通常记为R。一个数据结构可以表示成:B二(D,R)其中,B表示数据结构。为了反映D屮各数据元索Z间的前后件关系,一般用二元组來表示。例如,如果把一年四季看作一个数据结构,则可表示成:B=(D,R)D二{春季,夏季,秋季,冬季}R={(春季,夏季),(夏季,秋季),(秋季,冬季)}2.存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。由于数据元素在计算机存储空间屮的位置关系可能与逻供关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后
4、件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素Z间的前后件关系的信息。一种数据的逻辑结构根据•需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。顺序存储方式主要用于线性的数据结构,它把逻轿上相邻的数据元索存储在物理上和邻的存储单元里,结点之间的关系由存储单元的邻接关系來体现。链式存储结构就是在每个结点中至少包含一个指针域,用指针來体现数据元素之间逻辑上的联系。1.2.2线性结构和非线性结构根据数据结构中各数据元素Z间前后件关系的复杂程度,一-般将数据结构分为两大类型:线性结构与非线性结构。(1)如果一个非空的数据结构满足下列两个条件
5、:%1有月•只有一个根结点;%1每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。线性结构乂称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构。栈、队列、串等都为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。数组、广义表、树和图等数据结构都是非线性结构。(2)线性表的顺序存储结构具有以下两个基木特点:%1线性衣屮所有元索所占的存储空间是连续的;%1线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。元素ai的存储地址为:ADR(ai)=ADR(al)+(i-l)k,ADR(al)为第一个元素的地址,k代表每个元素占的字节数。(3)
6、顺序表的运算有查找、插入、删除3种。1.3栈1.栈的基木概念栈(stack)是--种特殊的线性表,是限定只在一端进行插入与删除的线性表。在栈中,一端是封闭的,既不允许进行插入元索,也不允许删除元素;另一端是开口的,允许插入和删除元索。通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元索总是最后被插入的元素,从而也是最先被删除的元索;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈是按照“先进后出”或“后进先出”的原则组织数据的。例如,枪械的子弹匣就对以用來形象的表示栈结构。子弹匣的一端是完全封闭的,最后被压入弹匣的子弹总是最先被弹出,而最
7、先被压入的子弹最后才能被弹出。2.栈的顺序存储及其运算栈的基本运算冇3种:入栈、退栈与读栈顶元索。%1入栈运算:在栈顶位置插入一个新元索;%1退栈运算:取出栈顶元索并赋给一个指定的变量;%1读栈顶元索:将栈顶元索赋给一-个指定的变量。1.4队列1.队列的基本概念队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。当表中没有元索时称为空队列。队列的修改是依照先进先出的原则进行的,因此队列也称为先进先出的线性表,或考后进后出
此文档下载收益归作者所有