《数据结构》程序设计实习题目
《数据结构》程序设计实习题目

《数据结构》程序设计实习题目1.分别以顺序表和单链表作为存储结构,实现将线性表就地逆置的操作。
(所谓“就地逆置”是指辅助空间为O(1),即利用原表中的结点空间)。
2.写一程序将单链表中值重复的结点删除,使得表中各结点值均不相同。
3.已知一单链表中含有两类字符的数据元素(如:字母、数字),试编写程序将该单链表分成两个单链表,使得每个链表中只含有同一类的字符。
4.假设有两个按元素值递增有序的单链表A和B,试编写程序将A和B归并成一个按元素值递减有序的单链表。
5.利用线性结构(顺序表或链表)实现两个20位大整数的加法运算。
6.已知两个以顺序结构存储的线性表A和B,试编写程序实现从A表中删除包含在B表中的元素。
7.已知两个单链表A和B,试编写程序实现从A表中删除包含在B表中的元素。
8.已知两个以顺序结构存储的线性表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到A表。
9.已知两个单链表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到A表。
10.试编写程序,对任意输入的一个算术表达式,将式中的数字和运算符分成两类(一类是数字,一类是运算符),并按逆序输出。
(提示:利用栈来实现)11.利用栈结构,编写一个程序,对以逆波兰式表示的表达式求值。
12.编写程序,求得所有包含在串S中而不包含在串T中的字符(S中重复的字符只选一个)构成的新串R。
13.编写程序,求任意输入的串S中所含不同字符的总数和每种字符的个数。
14.一个文本串可用事先给定的字母映射表进行加密。
例如:设字母映射表为:a b c d e f g h i j k l m n o p q r s t u v w x y zn g z q t c o b m u h e l k p d a w x f y i v r s j则字符串“encrypt”被加密为“tkzwsdf”。
试写一程序将输入的文本串进行加密后输出。
15.假设两个10×10的稀疏矩阵A和B以三元组表的方式存储,试编写程序实现矩阵的相加运算,其结果存放在三元组表C中。
程序设计与数据结构练习题 附答案

一、单项选择题1.有下列程序段落:int i,a[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]);若要使数组元素的值分别为1,2,3,4,5,应从键盘输入(B)。
A.1,2,3,4,5↙B.1 2 3 4 5↙C.12345↙D.1;2;3;4;5↙2.数组名作为函数参数进行传递时,形参获得的是(D)。
A.该数组第一个元素的值B.该数组所有元素的值C.该数组所有元素的地址D.该数组的首地址3.设有如下宏定义:#define A 3+2#define B A*A则表达式“B*B”的值为( A )。
A.23B.5 C.25D.6254.在下列说明中,结构类型变量x 所占用内存字节数为(D)。
struct exp{ int i;float j;double k;}x;A.8个B.7个C.14个D.随计算机而定5.设有定义:int k=3,*p=&k; 则表达式*p的值是(D)。
A.1 B.0 C.2 D.36.下列程序的输出结果为(A)。
main(){ int i=3,b;b=(i--)+(i--);printf(“%d”,b);}A.6 B.2 C.3 D.47.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(D)。
A.c=b=a B. (a=c)||(b=c) C. a=c=b D. (a=c)&&(b=c)8.下列叙述不正确的是( A )。
A.函数定义可以嵌套B.宏定义可以嵌套C.函数调用可以嵌套D.循环结构可以嵌套9.设char *p=“abcde”,则printf(“%s”, p ) 的输出结果为( D )。
A.c B.cde C.b D.abcde10.p1,p2 为指向浮点的指针变量,下列运算没有意义的是(D)。
A.*p1-*p2 B.p1++ C.*p1+*p2 D.p1+p211.设有int i=010,j=10; 则printf( “%d,%d\n”,++i,j--);的输出是(B)。
数据结构实验考试题

第 1 题:报数问题(时间限制为:5000毫秒)5输入:标准输入输出:标准输出描述:n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。
例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。
给定n个人,请你编程计算出最后胜利者标号数。
输入:输入包含若干个用例,每个用例为接受键盘输入的两个数n(1<=n<=1000000), k(1<=k<=50),分别表示总人数及报到出圈数。
输入为“0 0“表示输入用例结束。
输出:每个用例用一行输出最后胜利者的标号数。
输入样例1:1 110 40 0输出样例1:15第2题:成绩统计(顺序线性表)(时间限制为:1000毫秒)描述:根据输入统计学生的平均分及各科平均分。
输入:第一行为学生的个数n及课程数m,第二行至m+1行为课程名,接下来为各学生的姓名及成绩,每个学生的信息占两行,第一行为学生的姓名,第二行为m个实数,表示学生各科成绩。
输出:输出包含2n+2m行,前2n行为学生的平均分,其中第一行为学生姓名,第二行为该生的平均分,后2m行为各课程的平均分,其中第一行为课程名,第二行为对应的平均分。
(保留两位小数)样例输入:3 2englishcomputerzhangshan87.5 98lisi80 78wangwu60 59样例输出:zhangshan92.75lisi79.00wangwu59.50english75.83computer78.33第3题:合并线性表(时间限制为:500毫秒)描述:已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。
输入:输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度,第二行为n个自然数构成的非递减顺序线性表,第三行为自然数m,表示第二个非递减顺序线性表的长度,第四行为m个自然数构成的非递减顺序线性表。
数据结构与算法实践练习题目及解答

数据结构与算法实践练习题目及解答以下是一些数据结构与算法的实践练题目及其解答。
1. 数组相关题目题目一给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的索引。
def twoSum(nums, target):nums_dict = {}for i in range(len(nums)):nums_dict[nums[i]] = i题目二给定一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
def moveZeroes(nums):count = 0for i in range(len(nums)):if nums[i] != 0:nums[count] = nums[i]count += 1while count < len(nums):nums[count] = 0count += 12. 链表相关题目题目三反转一个单链表。
class ListNode:def __init__(self, val=0, next=None): self.val = valself.next = nextdef reverseList(head):prev = Nonecurr = headwhile curr is not None:next_node = curr.nextcurr.next = prevprev = currcurr = next_nodereturn prev题目四给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
def deleteDuplicates(head):curr = headwhile curr is not None and curr.next is not None:if curr.val == curr.next.val:curr.next = curr.next.nextelse:curr = curr.nextreturn head以上是一些数据结构与算法的实践练习题目及其解答。
程序设计员实操考核数据结构题目

程序设计员实操考核数据结构题目题目背景描述在现代软件开发中,数据结构是非常重要的一部分。
程序设计员需要对常见的数据结构有深入的了解,并能够灵活运用。
针对这一需求,本文将给出一系列数据结构题目作为程序设计员的实操考核。
题目一:链表反转请设计一个函数,将给定的链表反转。
输入:一个链表的头节点输出:反转后的链表的头节点题目二:判断链表是否有环请设计一个算法,判断给定的链表中是否存在环。
输入:一个链表的头节点输出:若存在环,则返回True;否则返回False题目三:二叉搜索树的插入操作请设计一个算法,实现二叉搜索树的插入操作。
输入:二叉搜索树的根节点和待插入的节点值输出:插入节点后的二叉搜索树的根节点题目四:二叉树的深度请设计一个算法,计算给定二叉树的最大深度。
输入:二叉树的根节点输出:最大深度值题目五:LRU缓存请设计一个数据结构,实现LRU(Least Recently Used)缓存算法。
输入:缓存的容量,以及对缓存的操作(访问某个key、添加某个key-value 对)输出:根据缓存的操作返回相应结果题目六:并查集请设计一个算法,实现并查集(Union-Find)的功能。
输入:并查集的操作(合并两个集合、判断两个元素是否属于同一个集合)输出:根据并查集的操作返回相应结果题目七:堆排序请设计一个算法,实现堆排序。
输入:待排序的数组输出:排序后的数组题目八:图的表示与遍历请设计一个算法,实现图的存储和遍历。
输入:图的顶点和边的关系输出:根据遍历方式返回相应结果题目九:哈希表实现请设计一个算法,实现哈希表的基本操作。
输入:哈希表的操作(插入元素、删除元素、查询元素)输出:根据操作返回相应结果题目十:队列实现栈请设计一个算法,使用队列实现栈的功能。
输入:栈的操作(入栈、出栈、查看栈顶元素)输出:根据操作返回相应结果总结本文给出了程序设计员实操考核的十个数据结构题目,分别涵盖了链表反转、判断链表是否有环、二叉搜索树的插入操作、二叉树的最大深度、LRU缓存、并查集、堆排序、图的表示与遍历、哈希表的实现以及使用队列实现栈等方面的知识点。
数据结构实践题及答案

重庆邮电学院软件学院《数据结构》实验参考资料<适用于软件学院13104级>重庆邮电学院软件学院实验中心目录一、课程编号 (2)二、课程类型 (2)三、本课程的地位、作用与任务 (2)四、课程基本要求 (2)五、实验安排 (2)1、数据结构实验机器与环境 (2)(一)计算机的硬件配置 (2)(二)计算机的软件配置 (2)2、VisualC++6.0开发C语言程序 (2)(一)进入C++工作环境 (2)(二)编译、运行C程序 (3)3、上机实验 (6)实验1:线性表操作 (6)实验2:单链表操作 (11)实验3:表达式计算 (17)实验4:二叉树操作 (24)实验5:二叉搜索树操作 (30)实验6:图的运算 (36)实验7:散列表操作 (43)实验8:外存文件的排序操作 (49)实验9:二叉搜索树与文件操作 (53)六、教材 (60)七、成绩考核办法 (60)数据结构(C语言版)实验一、课程编号130101(本科)二、课程类型课程类型:必修课。
适用专业:计算机系各专业实验学时:10学时三、本课程的地位、作用与任务《数据结构》在计算机科学中是一门综合性的专业基础课。
数据结构的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有密切的关系,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
在计算机科学中,数据结构不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础,它的主要任务是讨论各种数据结构的逻辑结构,存储结构及有关操作的算法。
目的是使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术。
另一方面,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力。
从而为提高学生的实际分析问题和解决问题的编程能力打下基础。
数据结构完整题目及答案1
数据结构与算法实验报告目录实验一学生成绩分析程序 (4)1.1 上机实验的问题和要求(需求分析): (4)1.2 程序设计的基本思想,原理和算法描述: (4)1.3 调试和运行程序过程中产生的问题及采取的措施: (4)1.4 运行输出结果: (4)1.5 源程序及注释: (5)实验二线性表的基本操作 (8)2.1 上机实验的问题和要求(需求分析): (8)2.2 程序设计的基本思想,原理和算法描述: (8)2.3 调试和运行程序过程中产生的问题及采取的措施: (8)2.4 运行输出结果: (8)2.5 源程序及注释: (8)实验三链表的基本操作 (11)3.1 上机实验的问题和要求(需求分析): (11)3.2 程序设计的基本思想,原理和算法描述: (11)3.3 调试和运行程序过程中产生的问题及采取的措施: (11)3.4 运行输出结果: (11)3.5 源程序及注释: (11)实验四单链表综合实验 (14)4.1 上机实验的问题和要求(需求分析): (14)4.2 程序设计的基本思想,原理和算法描述: (14)4.3 调试和运行程序过程中产生的问题及采取的措施: (14)4.4 运行输出结果: (14)4.5 源程序及注释: (14)实验五串 (19)5.1 上机实验的问题和要求(需求分析): (19)5.2 程序设计的基本思想,原理和算法描述: (19)5.3 调试和运行程序过程中产生的问题及采取的措施: (19)5.4 运行输出结果: (19)5.5 源程序及注释: (21)实验六循环队列的实现与运算 (22)6.1 上机实验的问题和要求(需求分析): (22)6.2 程序设计的基本思想,原理和算法描述: (22)6.3 调试和运行程序过程中产生的问题及采取的措施: (22)6.4 运行输出结果: (22)6.5 源程序及注释: (23)实验七栈子系统 (26)7.1 上机实验的问题和要求(需求分析): (26)7.2 程序设计的基本思想,原理和算法描述: (26)7.3 调试和运行程序过程中产生的问题及采取的措施: (26)7.4 运行输出结果: (26)7.5 源程序及注释: (28)实验八树 (36)8.1 上机实验的问题和要求(需求分析): (36)8.2 程序设计的基本思想,原理和算法描述: (39)8.3 调试和运行程序过程中产生的问题及采取的措施: (39)8.4 运行输出结果: (39)8.5 源程序及注释: (41)实验九建立哈夫曼树与哈夫曼树与码 (50)9.1 上机实验的问题和要求(需求分析): (50)9.2 程序设计的基本思想,原理和算法描述: (50)9.3 调试和运行程序过程中产生的问题及采取的措施: (50)9.4 运行输出结果: (50)9.5 源程序及注释: (50)实验十图 (53)10.1 上机实验的问题和要求(需求分析): (53)10.2 程序设计的基本思想,原理和算法描述: (53)10.3 调试和运行程序过程中产生的问题及采取的措施: (53)10.4 运行输出结果: (53)10.5 源程序及注释: (53)实验一学生成绩分析程序一、上机实验的问题和要求(需求分析):【题目】设一个班有10个学生,每个学生有学号,以及数学、物理、英语、语文、体育 5 门课的成绩信息。
数据结构实习报告题目
一、实习背景与目的随着信息技术的飞速发展,数据结构作为计算机科学的核心基础之一,在软件开发和数据处理中扮演着至关重要的角色。
为了提高自身对数据结构应用的理解和掌握,本次实习旨在通过设计和实现一个基于链表与树结构的多功能数据管理系统,提升对数据结构理论知识的实践运用能力,并增强系统分析与设计的能力。
二、需求分析1. 程序所实现的功能:(1)实现链表的基本操作,如插入、删除、查找等;(2)实现二叉树的基本操作,如插入、删除、查找等;(3)实现数据管理系统,包括数据的存储、查询、修改、删除等;(4)实现用户界面,方便用户进行操作。
2. 程序的输入:(1)输入数据格式:链表数据以空格分隔,二叉树数据以括号表示,节点间用逗号分隔;(2)输入说明:用户需按照要求输入数据,系统将自动处理。
3. 程序的输出:(1)输出格式:链表、二叉树以文本形式输出;(2)输出说明:系统将按照用户操作要求,实时显示操作结果。
4. 测试数据:(1)链表测试数据:1 2 3 4 5;(2)二叉树测试数据:(1,2,(3,4,5),6)。
5. 合作人及其分工:(1)负责人:负责整体设计和开发;(2)成员1:负责链表和二叉树的基本操作实现;(3)成员2:负责数据管理系统的设计和实现;(4)成员3:负责用户界面设计和实现。
三、设计说明1. 主要的数据结构设计说明:(1)链表:采用单向链表实现,节点包含数据域和指针域;(2)二叉树:采用二叉搜索树实现,节点包含数据域和左右指针域。
2. 程序的主要流程图:(1)用户输入数据;(2)系统解析数据并创建链表和二叉树;(3)用户选择操作,系统根据操作进行相应处理;(4)系统输出操作结果。
3. 程序的主要模块:(1)链表模块:负责链表的基本操作;(2)二叉树模块:负责二叉树的基本操作;(3)数据管理系统模块:负责数据的存储、查询、修改、删除等;(4)用户界面模块:负责用户与系统的交互。
4. 程序的主要函数及其伪代码说明:(1)链表插入:function insertNode(head, data)(2)链表删除:function deleteNode(head, data)(3)二叉树插入:function insertNode(root, data)(4)二叉树删除:function deleteNode(root, data)5. 合作人设计分工:(1)负责人:负责整体设计和开发;(2)成员1:负责链表和二叉树的基本操作实现;(3)成员2:负责数据管理系统的设计和实现;(4)成员3:负责用户界面设计和实现。
数据结构与C语言程序设计试题及答案
6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为O(n log w)。
三.简答题(6’5)
1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?
采用基数排序方法最佳。
因单词长度相等,而只有26个字母组成,符合基数排序的条件。
因m<<n,故时间复杂性由O(m(n+rm))变成O(n)。
2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。若输入序列的长度为n,则可能的输出序列有多少?
ABC,ACB,BAC,BCA,CBA
C2nn/(n+1)
()10、任何有向图的顶点都可以按拓扑序排序。
二.填空题(2’6)
1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06, 0.32,0.03,0.21,0.10,为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是5位。
2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK,按后序遍历所得到的结点序列为DCEGBFHKJIA,按先序遍历所得到的结点序列为ABCDGEIHFJK。
O(n log n)
四.程序设计题(38’)
1.假设有两个集合A和B,均以元素值递增有序排列的带头结点的单链表作为存储结构。请编写算法求C=AB,要求C按元素值递增有序排列,并要求利用原表(即表A和表B)的结点空间存放表C。(12’)
void Join(LinkList &la , LinkList &lb , LinkList &lc)
数据结构实验题目
实验题目一一、单链表基本运算【问题描述】设计并实现线性表的单链表存储和运算。
【基本要求】实现单链表的插入、删除和遍历运算,每种操作用一个函数实现。
插入操作:将一个新元素插入表中指定序号的位置。
删除操作:将指定序号的元素从表中删除。
遍历操作:从表头按次序输入所有元素的值,若是空表,则输出信息“empty list!”。
【实现提示】程序运行时,首先在main函数中创建空的、带头结点的单链表。
然后多次调用实现插入操作的函数(每次都将元素在序号1位置上插入),将元素依次插入表中,最后调用实现遍历操作的函数输出所有元素。
之后再多次调用实现删除操作的函数将表还原为空表(每次都删除第1个元素,每删除一个元素后,将表中剩余元素都输出一次)。
【测试数据】输入数据:1 2 3 4 5 0(为0时结束,0不存入链表)第一次输出:5 4 3 2 1第二次输出:4 3 2 1第三次输出:3 2 1第四次输出:2 1第五次输出:1第六次输出:empty list!二、约瑟夫环问题【问题描述】编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。
报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出列为止。
【基本要求】利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
【测试数据】M的初始值为20;n等于7,7个人的密码依次为:3,1,7,2,4,8,4。
输出为:6,1,4,7,2,3,5【实现提示】程序运行时,首先要求用户指定初始报数上限值,然后读取各人的密码。
可设n≤30。
此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。
【选作内容】用顺序存储结构实现该题目。
三、一元多项式相加、减运算器【问题描述】设计一个一元稀疏多项式简单计算器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》程序设计实习题目
1. 分别以顺序表和单链表作为存储结构,实现将线性表就地逆置的操作。
(所谓“就地逆置”是指辅
助空间为0(1),即利用原表中的结点空间)。
2. 写一程序将单链表中值重复的结点删除,使得表中各结点值均不相同。
3. 已知一单链表中含有两类字符的数据元素(如:字母、数字),试编写程序将该单链表分成两个单链
表,使得每个链表中只含有同一类的字符。
4. 假设有两个按元素值递增有序的单链表A和B,试编写程序将A和B归并成一个按元素值递减有序的
单链表。
5. 利用线性结构(顺序表或链表)实现两个20位大整数的加法运算。
6. 已知两个以顺序结构存储的线性表A和B,试编写程序实现从A表中删除包含在B表中的元素。
7. 已知两个单链表A和B,试编写程序实现从A表中删除包含在B表中的元素。
8. 已知两个以顺序结构存储的线性表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到
A表。
9. 已知两个单链表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到A表。
10. 试编写程序,对任意输入的一个算术表达式,将式中的数字和运算符分成两类(一类是数字,一类是
运算符),并按逆序输出。
(提示:利用栈来实现)
11. 利用栈结构,编写一个程序,对以逆波兰式表示的表达式求值。
12. 编写程序,求得所有包含在串S中而不包含在串T中的字符(S中重复的字符只选一个)构成的新串
R。
13. 编写程序,求任意输入的串S中所含不同字符的总数和每种字符的个数。
14. 一个文本串可用事先给定的字母映射表进行加密。
例如:设字母映射表为:
abcdefghijkl mn opqrstuvwxyz
n g z q t c o b m u hel kpdawxfyi v r s j 则字符串“ encrypt ”被加密为“ tkzwsdf ”。
试写一程序将输入的文本串进行加密后输出。
15. 假设两个10 X 10的稀疏矩阵A和B以三元组表的方式存储,试编写程序实现矩阵的相加运算,其结
果存放在三元组表C中。
16. 对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。
17. 编写按层次顺序(同一层自左至右)遍历二叉树的算法。
18. 编写一算法,计算二叉树中叶子结点的数目。
19. 编写一算法,计算二叉树的深度。
20. 对给定的图的邻接矩阵,试编写程序,建立该图的邻接表。
21. 假设一个有向图以邻接矩阵方式存储,试编写程序,求出图中各结点的出度和入度。
22. 实现克鲁斯卡尔算法,求出给定图的最小生成树。
(只需输出各条选中的边)
23. 对一个给定的有向图,编写算法判断它是否是强连通图。
24. 编写算法,实现从二叉排序树中删除一个关键字。
25. 编写程序,实现对索引顺序表的查找。
(即分块查找)
26. 编写程序实现:以“除留余数法”为哈希函数,对任意输入的一批100 以内的整数,构造哈希表,
表长为30。
(注:解决冲突可以用开放定址法)
27. 以单链表为存储结构,实现直接插入排序。
28. 按折半查找的方法,实现直接插入排序。
(即教材中的2-路插入排序)
29. 编写程序,对任意输入的一批数据,建立一个大根堆。
30. 以单链表为存储结构,实现简单选择排序算法。
31. 编写程序,对n 个正、负整数组成的序列进行整理,将所有的负数排到非负数之前。
32. 荷兰国旗问题(三色旗问题):设有一个仅由红、白、蓝三种颜色的条块组成的条块序列(三种色块
的数目可不同,各色块是任意排列的),试编写一个算法,使得这些条块按红、白、蓝的顺序排好(即所有红色的条块集中在序列前部,白色在中部,蓝色在后部)。
33. 以基数排序的方法,实现对任意输入的一组2 位正整数进行排序。