- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公共基础数据结构资料.ppt
1.8 排序技术 排序是指将一个无序序列整理成按值非递减顺序排列的有序序列,即是将无序的记录序列调整为有序记录序列的一种操作。1.8.1交换类排序法 所谓交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法与快速排序法都属于交换类的排序方法。 1.冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。 2.快速排序法通过一次交换而消除多个逆序。 1.8.2插入类排序法 1.简单插入排序法 插入排序是指将无序序列中的各元素依次插入到已经有序的线性表中。 2.希尔排序法 希尔排序是将整个无序序列分割成若干小的子序列分别进行插入排序。 1.8.3选择类排序法 1.简单选择排序法 基本思想:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空位止。 2.堆排序 堆积排序是指利用堆积树这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。 * 第二章????? 数据结构与算法 2.1 概述 计算机加工处理的对象是数据,而数据之间有一定的内在联系,即数据具有一定的结构。因此我们要了解数据的逻辑关系、数据在计算机内的存储表示形式以及对数据施加的运算,才能在程序中对数据进行有效的处理。 数据结构是一门研究数据组织、存储和运算的一般方法的学科。 2.1.1 数据结构的基本概念 数据结构是描述一组数据元素及元素间的逻辑上的关系的。可以用集合论的方法给出数据结构的定义 数据结构可描述为 Group=(D,R) 下面用例子来解释数据结构的定义 * 由于C语言中数组的下标从“0”开始,若V是一个Sqlist类型的顺序表,则顺序表中第i个数据元素对应为V.Elem[i-1]。插入算法可描述为: 栈的基本运算: 1)插入元素称为入栈运算; 2)删除元素称为退栈运算; 3)读栈顶元素是将栈顶元素赋给一个指 定的变量,此时指针无变化。 栈的存储方式和线性表类似,也有两种, 即顺序栈和链式栈 1.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A) e3,e1,e4,e2 B) e2,e4,e3,e1 C) e3,e4,e1,e2 D) 任意顺序 2.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是 A) ABCED B) DCBEA C) DBCEA D) CDABE 1.4.2队列及其基本运算 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。 队列是“先进先出”或“后进后出”的线性表。 队列的主要运算 (1)设置一个空队列; (2)插入一个新的队尾元素,称为进队; (3)删除队头元素,称为出队; (4)读取队头元素; a1 , a2 , a3 , a4 , ………… an-1 , an 队 列 示 意 图 队头 队尾 循环队列及其运算:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。 循环队列中元素的个数=rear-front。 1.5 线性链表 1.5.1线性链表的基本概念 1.5.2线性链表的基本运算 1.5.3循环链表及其基本运算 1.5.1 线性链表 线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。因此,在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素的值,称为数据域;另一部分用于存放指针,称为指针域,用于指向该结点的前一个或后一个结点,如下图所示: data next 1536 元素2 1400 元素1 1346 元素3 ∧ 元素4 1345 h 链式存储 每个节点都由两部分组成:数据域和指针域。 数据域存放元素本身的数据, 指针域存放指针。 数据元素之间逻辑上的联系由指针来体现。 1536 元素2 1400 元素1 1346 元素3 ∧ 元素4 head 1346 元素3 15
文档评论(0)