数据结构1-4章习题答案

合集下载

数据结构1-4章习题答案

数据结构1-4章习题答案

第1章概论习题参考解答一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:()、()、()、()。

【答】集合、线性结构、树型结构和图状结构。

2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:()、()、()、()。

【答】顺序存储方法、链接存储方法、索引存储方法和散列存储方法。

二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的()。

(A)正确性(B)有穷性(C)确定性(D)可行性【答】B。

2、算法的每一步,必须有确切的定义。

也就是说,对于每步需要执行的动作必须严格、清楚地给出规定。

这是算法的()。

(A)正确性(B)有穷性(C)确定性(D)可行性【答】C。

3、算法原则上都是能够由机器或人完成的。

整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。

这是算法的()。

(A)正确性(B)有穷性(C)确定性(D)可行性【答】D。

三、简答题1、算法与程序有何异同?【答】尽管算法的含义与程序非常相似,但两者还是有区别的。

首先,一个程序不一定满足有穷性,因此它不一定是算法。

例如,系统程序中的操作系统,只要整个系统不遭受破坏,它就永远不会停止,即使没有作业要处理,它仍处于等待循环中,以待一个新作业的进入。

因此操作系统就不是一个算法。

其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限止。

如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。

2、什么是数据结构?试举一个简单的例子说明。

【答】数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(即数据元素的组织形式)。

例如,队列的逻辑结构是线性表(先进先出);队列在计算机中既可以采用顺序存储也可以采用链式存储;对队列可进行删除、插入数据元素以及判断是否为空队列、将队列置空等操作。

3、什么是数据的逻辑结构?什么是数据的存储结构?【答】数据元素之间的逻辑关系,也称为数据的逻辑结构。

计算机数据结构习题1附答案

计算机数据结构习题1附答案

文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

解:数据是对客观事物的符号表示。

在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。

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

数据对象是性质相同的数据元素的集合,是数据的一个子集。

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

存储结构是数据结构在计算机中的表示。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。

是对一般数据类型的扩展。

1.2 填空题:1.常见的数据结构有__结构,_____结构,____结构等三种。

2.常见的存储结构有_________结构,______结构等两种。

3.数据的基本单位是____,它在计算机中是作为一个整体来处理的。

4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,______和_____。

5.《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和________。

1.2设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。

解:1.3设有以下三个函数:()10002124++=n n n f ,()3450015n n n g+=,()n n n n h log 5005.3+=请判断以下断言正确与否:(1) f(n)是O(g(n)) (2) h(n)是O(f(n)) (3) g(n)是O(h(n)) (4) h(n)是O(n 3.5) (5) h(n)是O(nlogn)解:(1)对 (2)错 (3)错 (4)对 (5)错第二章序列2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

02272《数据结构》国开形考任务(1-4)试题答案集

02272《数据结构》国开形考任务(1-4)试题答案集

02272《数据结构》国开形考任务(1-4)试题答案集任务1:数据结构基础1. 数据结构是指数据元素之间的关系和操作的组织方式。

它包括数据的逻辑结构、数据的存储结构以及对数据的操作等内容。

2. 数据结构的逻辑结构包括线性结构、树形结构、图形结构等。

3. 数据结构的存储结构包括顺序存储结构和链式存储结构。

4. 数据结构的操作包括插入、删除、查找、修改等。

5. 数据结构的选择应根据具体应用需求来确定,需要考虑数据的规模、操作的效率、存储空间的利用等因素。

任务2:线性表1. 线性表是一种最基本的数据结构,它包括顺序表和链表两种存储结构。

2. 顺序表是用一段连续的存储空间存储线性表的元素,可以通过下标直接访问元素。

顺序表的插入和删除操作需要移动其他元素,效率较低。

3. 链表是通过节点之间的指针来连接元素的,可以实现灵活的插入和删除操作。

链表的缺点是访问元素需要从头节点开始遍历,效率较低。

4. 单链表是最简单的链表结构,每个节点包含数据和指向下一个节点的指针。

5. 双链表在单链表的基础上增加了一个指向前一个节点的指针,可以实现双向遍历。

任务3:树和二叉树1. 树是一种非线性的数据结构,它包括节点和边组成。

节点之间存在一对多的关系。

2. 二叉树是一种特殊的树结构,每个节点最多有两个子节点。

3. 二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。

4. 前序遍历先访问根节点,然后依次访问左子树和右子树。

5. 中序遍历先访问左子树,然后访问根节点,最后访问右子树。

6. 后序遍历先访问左子树,然后访问右子树,最后访问根节点。

任务4:图的表示和遍历1. 图是一种由节点和边组成的数据结构,节点之间存在多对多的关系。

2. 图的表示方式有邻接矩阵和邻接表两种。

3. 邻接矩阵是一个二维数组,用于表示节点之间的连接关系。

4. 邻接表是由链表构成的数组,每个节点的链表存储与其相邻的节点。

5. 图的遍历方式包括深度优先搜索和广度优先搜索。

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)【第一章绪论】1. 数据结构是计算机科学中的重要基础知识,它研究的是如何组织和存储数据,以及如何通过高效的算法进行数据的操作和处理。

本章主要介绍了数据结构的基本概念和发展历程。

【第二章线性表】1. 线性表是由一组数据元素组成的数据结构,它的特点是元素之间存在着一对一的线性关系。

本章主要介绍了线性表的顺序存储结构和链式存储结构,以及它们的操作和应用。

【第三章栈与队列】1. 栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作。

本章主要介绍了栈的顺序存储结构和链式存储结构,以及栈的应用场景。

2. 队列也是一种特殊的线性表,它的特点是只能在表的一端进行插入操作,而在另一端进行删除操作。

本章主要介绍了队列的顺序存储结构和链式存储结构,以及队列的应用场景。

【第四章串】1. 串是由零个或多个字符组成的有限序列,它是一种线性表的特例。

本章主要介绍了串的存储结构和基本操作,以及串的模式匹配算法。

【第五章数组与广义表】1. 数组是一种线性表的顺序存储结构,它的特点是所有元素都具有相同数据类型。

本章主要介绍了一维数组和多维数组的存储结构和基本操作,以及广义表的概念和表示方法。

【第六章树与二叉树】1. 树是一种非线性的数据结构,它的特点是一个节点可以有多个子节点。

本章主要介绍了树的基本概念和属性,以及树的存储结构和遍历算法。

2. 二叉树是一种特殊的树,它的每个节点最多只有两个子节点。

本章主要介绍了二叉树的存储结构和遍历算法,以及一些特殊的二叉树。

【第七章图】1. 图是一种非线性的数据结构,它由顶点集合和边集合组成。

本章主要介绍了图的基本概念和属性,以及图的存储结构和遍历算法。

【总结】1. 数据结构是计算机科学中非常重要的一门基础课程,它关注的是如何高效地组织和存储数据,以及如何通过算法进行数据的操作和处理。

本文对《数据结构》第二版严蔚敏的课后习题作业提供了参考答案,涵盖了第1-7章的内容。

数据结构题库课后练习题答案章节测试题1-9章全

数据结构题库课后练习题答案章节测试题1-9章全

第一章绪论一.填空题1.数据结构是一门研究非数值计算的程序设计问题中计算机的_____________ 以及它们之间的_________ 和操作等的学科。

2.数据结构包括数据的_____________ 结构、_____________ 结构和运算。

3.数据的物理结构被分为_________、________、__________和___________四种。

4.数据的逻辑结构是指数据元素之间的逻辑关系,根据数据元素之间关系的不同特性,逻辑结构通常有_______________ ,________________ ,________________ 和__________________四类基本结构。

5.一种抽象数据类型包括 ____________和_____________ 两个部分。

6.数据结构是指数据及其相互之间的______________。

当结点之间存在M 对N(M:N)的联系时,称这种结构为____________当结点之间存在1 对N(1:N)的联系时,称这种结构为____________。

7.数据结构被形式地定义为(D, R),其中D是___________ 的有限集合,R是D上的有限集合。

8. 数据的基本单位是________,它在计算机中是作为一个整体来处理的。

9.算法的特性有________,___________ ,____________ ,_______________ 和__________ 等五种特性。

10.通常从四个方面评价算法的质量:_________、_________、_________和_________。

11.算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

12.算法的效率可分为______________ 效率和__________________ 效率。

13.算法的时间复杂度为(3n3+2000n log2n+90)/n2,其数量级表示为________。

数据结构第一章答案

数据结构第一章答案

习题一1.1有下列几种用二元组表示的数据结构,试画出它们分别对应的图形表示(当出现多个关系时,对每个关系画出相应的结构图),并指出它们分别属于何种结构。

1.A=(K,R) 其中K={a1,a2,a3,…,a n}R={}2.B=(K,R),其中K={a,b,c,d,e,f,g,h}R={<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h>}3.C=(K,R),其中K={a,b,c,d,e,f,g,h}R={<d,b>,<d,g>,<b,a>,<b,c>,<g,e>,<g,h>,<e,f>}4.D=(K,R),其中K={1,2,3,4,5,6}R={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} 5.E=(K,R),其中K={48,25,64,57,82,36,75,43}R={r1,r2,r3}r1={<48,25>,<25,64>,<64,57>,<57,82>,<82,36>,<36,75>,<75,43>}r2={<48,25>,<48,64>,<64,57>,<64,82>,<25,36>,<82,75>,<36,43>}r3={<25,36>,<36,43>,<43,48>,<48,57>,<57,64>,<64,75>,<75,82>} 解:⑴是集合结构;⑵是线性结构;⑶⑷是树型结构;⑸散列结构1.2用C语言函数编写下列每一个算法,并分别求出它们的时间复杂度。

数据结构 第1-4章选择题(有 答案)

数据结构  第1-4章选择题(有 答案)
存储密度的定义在课本p41表
2."1的末尾,它是小于或等于1的一个实数。
(8)将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.n
B.2n-
1
C.2n
D.n-1
说明:
合并两个有序表的算法见课本算法
2."15和算法
2."1
6。"当两个表中的一个完全排在另一个表的前面时,比较的次数最少,此时只是后面表中的第一个元素与前面表中的元素逐一比较一次,然后就直接将两个表连接起来。
D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
(11)若指定有n个元素的向量,则建立一个有序单链表的时间复杂性的量级是()。
2A.O
(1)
B.O(n)
C.O(n)
D.O(nlog
2n)说明:
这道题其实有些问题。若题目的意思是,有n个元素,事先我们不知道元素的大小次序,我们依此将这些元素一个个插入单链表中并且使得单链表有序。注意这是单链表,第8章的一些快速排序算法在这里用不上。因为是单链表,每次插入一个元素,只能从表头开始逐一比较,寻找插入的位置。在最坏的情况下,需要比较n(n-1)/2次,时间复杂性为O(n2)。但平均却是O(n)。
A.r-f
B.(n+f-r)%n
C.n+r-f
D.(n+r-f)%n说明:
当用数组表示循环队列时,f、r是数组元素的下脚标。由于是循环的,所以有可能r<f。若r>f,则r-f即为队列的元素个数;当r<意当r>f时,(n+r-f)%n=(r-f)%n=r-f。
(4)链式栈结点为:
说明:

数据结构1-4章习题答案

数据结构1-4章习题答案

数据结构1-4章习题答案一、名词解释抽象数据类型、数据结构、数据结构的逻辑结构、数据结构的物理结构、算法、算法评价、时间复杂度、大O表示法、线性表、栈、队列、广义表、稀疏矩阵二、填空1、抽象数据类型是由一组数据结构和在该组数据结构上的一组操作所组成。

2、在定义某种数据结构时,其数据域的数据类型可分为简单类型和结构体类型两种,为增强其通用性,应将其再定义为通用数据类型。

3、如果将线性数据结构关系描述为1:1,那么树型和图型数据结构应分别为1:N、M:N5、算法应具备以下5个特性:有穷性、正确性、可行性、输入和输出。

6、在分析各种算法的时间复杂度时,一般只讨论相应的数量级,用f(n)表示,请问其中n的含义是处理问题的样本量7、对于一个以顺序实现的循环队列Q[m],队首、队尾指针分别为f 和r,其盘空的条件是f=r,盘满的条件是(r+1)%m=f8、循环链表的主要优点是最大限度的利用空间9、链表对于数据元素的插入和删除不需要移动结点,只需改变相关结点的指针域的值。

10、在一个链式栈中,若栈顶指针等于NULL,则为空栈11、主程序第一次调用递归函数被称为外部调用,递归函数自己调用自己被称为内部调用,它们都需要利用栈保存调用后的返回地址地址。

12、某算法在求解一个10阶方程组时,运算次数是500,求解一个30阶方程组时,运算次数是4500,则该算法的时间复杂度为O(N2)三、选择题1、对一个线性表的存取操作很少,而插入和删除操作较多时应采用B存储结构。

A.顺序存储B.链式存储C.索引存储D.散列式存储2、对一个线性表的随机存取操作较多时,应采用B存储结构。

A.静态顺序存储B.动态顺序存储C.动态链接存储D.静态链接存储3、对一个顺序存储结构的栈,栈满的判断条件是(D)A.S.top==-1B.S.top==0C.S.top==Ma某SizeD.S.top==Ma某Size-14、若循环队列有n个顺序存储单元,front、rear分别为队首和队尾指针则判断队满的条件是(C)A.(front+1)%n==rearB.(front-1)%n==rearC.(rear+1)%n==frontD.(rear-1)%n==front5、下列是顺序存储线性表排序的算法voidSort(Lit&L){}问:此算法的时间复杂性为:BA.O(n)B.(n2)C.(n某i)D.(n某j) inti,j;ElemType某;for(i=1;i某=L.lit[i];for(j=i-1;j>=0;j--)if(某L.lit[j+1]=L.lit[j];elebreak;L.lit[j+1]=某;四、简答题1、简述线性表的顺序存储和链接存储实现的异同。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章绪论一、选择题1.D2.C3.C4.B5.D6.C7.D8.C9.A 10.D11.D 12.B二、填空题1. 逻辑结构存储结构运算2. 集合结构线性结构树形结构图状结构3. 有穷性. 确定性. 可行性. 输入. 输出4. 顺序存储. 链式存储5. 数据元素6. 线性结构非线性结构三、简答题1. 尽管算法的含义与程序非常相似,但两者还是有区别的。

首先,一个程序不一定满有穷性,因为它不是一个算法。

其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限制。

如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。

2. 数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(数据元素的组织形式)。

例如:队列的逻辑结构是线性表(先进后出);队列在计算机中既可以采用顺序存储也可以采用链式存储;队列可进行删除数据元素. 插入数据元素. 判断是否为空队列,以及队列置空等操作。

3. 数据元素之间的逻辑关系,也称为数据的逻辑结构。

数据元素以及它们之间的相互关系在计算机存储器内的表示(又称映像)称为数据的存储结构,也称数据的物理结构。

4. 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。

此外,一个算法还具有下列5个特性:(1)有穷性:一个算法必须在执行有穷步之后结束,即算法必须在有限时间内完成。

(2)确定性:算法中每一步必须有明确的含义,不会产生二义性。

并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。

(3)可行性:一个算法是能执行的,即算法中的每一步都可以通过已经实现的基本运算执行有限次得以实现。

(4)输入:一个算法有零个或者多个输入,它们是算法开始时对算法给出的初始量。

(5)输出:一个算法有一个或者多个输出,它们是与输入有特定关系的量5. 举例说明四种基本结构的区别:集合: 数据元素之间无任何关系,如集合A={x,5,t,&};线性结构: 数据元素之间存在一个对一个的关系,如线性表L=(2,3,4,5,7,10);树形结构: 数据元素之间存在一个对多个的关系,如文件系统目录管理;图状结构: 数据元素之间存在多个对多个的关系,如教学计划课程安排顺序图。

四. 算法设计题1. 执行时间为O(n)2. 执行时间为O(n3)3. 时间复杂度为O(log n)。

第二章线性表一、选择题1.B2.A3.B4.A5.C6.D7.A8.C9.C 10.B11.A 12.D 13.C 14.A 15.B16.C 17.A 18.A二、填空题1. 没有,1,没有,12. 长度,空表3. 移动4. 顺序存储结构,链式存储结构5. 顺序表,链表6. 移动,指针域7. 移动,前一个8. 头指针,指针域(链域)9. p->next->next10. p->next,q11. 链式12. 不相同13. 直接前驱,直接后继14. 运算(或操作)三、简答题1. 非空线性表的结构特征为:①有且只有一个称“第一个结点” a1 ,它无前驱;②有且只有一个称“最后结点” a n ,它无后继;③除以上结点外,其余结点均有一个直接前驱和一个直接后继。

2. 线性表的顺序存储结构具有如下两个基本特点:①线性表中所有元素所占的存储空间是连续的;②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。

3. 用一维数组存放线性表时,应注意数组的基本类型,要与线性表中数据元素的类型相同,而且该一维数组的长度,通常要定义得比线性表的实际长度大一些,以便对线性表进行各种运算。

4. 线性表顺序存储结构的优点是:简单,存储密度大,空间利用率高,对表中任意元素可直接确定其存储地址,随机访问存取效率高。

线性表顺序存储结构的缺点是:在顺序表中进行插入与删除操作时,需大量移动数据元素,时间开销大;再者,在顺序存储结构下,线性表的长度估计困难,并且当有多个顺序表同时共享计算机的存储空间时,不便于对存储空间进行动态分配。

5. 假设数据结构中的每一个数据结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。

若每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。

其中指针用于指向该结点的前一个或后一个结点(即前驱或后继)。

通过每个结点的指针域,将n个结点按其逻辑顺序连接在一起而构成的数据存储结构,称为链式存储结构。

6.(1)开始结点(首结点):是指链表中的存储线性表中第一个数据元素a1的结点。

(2)头结点:为了操作方便,通常在链表的开始结点之前附加上一个结点,称为头结点。

一般情况下,头结点的数据域中不存储信息。

附设头结点的作用是为了对链表进行操作时更方便,可以对空表,非空表的情况以及对开始结点进行统一的处理。

(3)头指针:是指向链表中的第一个结点(可以是头结点,也可以是开始结点)的指针。

若链表中附设了头结点,则不管线性表是否为空,头指针均不为空;若链表中不设头结点,则线性表为空时,链表的头指针为空。

以上三个概念,对于单链表,循环链表和双向链表都适用。

7. 在单循环链表中,设置尾指针,可以更方便地判断链表是否为空。

8. 算法的功能是把单链表的第一个结点变成末尾结点。

返回的L指向原链表的第二个结点。

若原链表表示的线性表是(a1,a2,a3,a4......a n),则操作后表示的线性表为(a2,a3,a4......a n,a1)。

9. 由于向量中的元素按元素非递减有序排列,值相同的元素必为相邻的元素,因此依次比较相邻两个元素,若值相等,则删除其中一个,否则继续向后查询。

故算法功能是删除向量中多余的值相同的元素。

10.(1)单链表:当知道指针p指向某结点时,能够根据该指针找到其直接后继,但是不知道头指针,因此不能找到该结点的直接前驱,故无法删除该结点。

(2)双链表:根据指针p可以找到该结点的直接前驱和直接后继,因此,能够删除该结点。

(3)单循环链表:和双链表类似,根据指针p也可以找到该结点的直接前驱和直接后继,因此也可以删除该结点。

四、算法设计题1.【算法】void InsertInList(SequenList *L,DataType x){int i;for(i=0;i<L->Length(L)&&L->data[i]<x;i++); /*查找并比较*/Insert(L,i+1,x); /*调用顺序表插入算法*/ }2.【算法】LinkList *LinkTueList(LinkList *L1,LinkList *L2){ /*将两个单链表链接在一起*/LinkList *p,*q; p=L1;q=L2;while(p->next)p=p->next; /*查找终端结点*/p->next=q->next;free(q);return(L1); /*将L2的开始结点链接在L1之后*/}【时间复杂度分析】因为本算法的主要操作时间花费在查找L1的终端结点上,与L2的长度无关,所以本算法的时间复杂度为O(m)。

3.【算法】LinkList *JiaoJi(LinkList *A, LinkList *B){ LinkList *q,*p,*r,*s,*C;C = NULL;r = C;P = A; q = B;while (p&&q)if(p->data<q->data) p=p->next;else if(p->data==q->data){ s= (LinkList *)malloc(sizeof(LinkList));s->data=p->data;if(r!=NULL) r->next=s;else C=s;r=s;p=p->next;q=q->next;}else q=q->next;r->next=NULL;return( C );}4.【算法】void ShanChu(LinkList *L,int min,int max) /*设L为带头结点的单链表*/ { LinkList *p,*q,*s,*k;s=L; p=s->next;while(p!=NULL&&p->data>=max){s=p;p=p->next;} /*p指向第一个值小于max的结点,s指向其前驱*/ if(p!=NULL){ q=p;while(q!=NULL&&q->data>=min) /*q继续下移 */p=p->next; /* q指向第一个值不大于min的结点*/ s->next=q; /* 删除结点后的链接 */k=p->next;while(k!=q) /* 删除p结点到 q 结点之间的所有结点 */{ free(p); p=k; k=p->next;}}}【时间复杂度分析】前两个while循环和起来最多循环n次,第三个while循环最多循环n次,即删除n个结点,故算法的时间复杂度为O(n)。

5.【算法】LinkList *CharFen(LinkList *A){ LinkList *B,*p; /* p 指向A 表中序号为偶数的元素 */LinkList *ra, *rb; /* ra和rb将分别指向将创建的A表和B表的尾结点 */B=(LinkList *)malloc(sizeof(LinkList)); /* 创建B表头结点 */B->next=NULL; /* B表置空 */ra=A->next; rb=B; p=ra->next; /* p为工作指针,指向待分解的结点 */while(p!=NULL&&ra!=NULL){ ra->next=p->next; /* 做A表链接 */ra=p->next;rb->next=p; rb=p; /* p结点链接到B表的表尾,rb指向新的尾结点*/p=ra->next; /* 将p恢复为指向新的待处理结点 */}return(B);}6.【算法】void Rearrange(SequenList L) /* 本算法利用快速排序的划分重排线性表 */ { int i,j; /* i,j为工作指针(下标),初始指向线性表a的两端 */int t;i=0; j=Length(L)-1;while(i<j){ while(i<j && L->data[j]>=0) j++; /* 若当前元素>=0,则指针前移 */if(i<j) { t=L->data[i];L->data[i]=L->data[j];L->data[j]=t;i++; } /* 将负数前移 */while(i<j && L->data[i]<=0) i++; /* 当前元素为<=0,指针后移 */if(i<j) { t=L->data[i];L->data[i]=L->data[j];L->data[j]=t;j--; } /* 将正数后移 */}}7.【算法】void Delete_min(LinkList *L) /* L是带头结点的单链表 */{ LinkList *p, *pre, *q;p=L->next; /* p为工作指针。

相关文档
最新文档