计科12普数据结构实习题目1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计科12嵌入式普、软件普、网络普数据结构课程设计题目
1、大整数运算器
要求:
(1)用顺序线性表存储整数,每个单元存储4位。
(2)实现大整数的加、减、乘法。
(3)输出格式:从个位向左,每4位一组,组间用空格隔开,最左边若正好4位一组,符号与数字之间不必间隔。
如:-12358769524应输出为:-123 5876 9524
(4)人机交互界面。
2、求大整数的阶乘(不小于20的数的阶乘)
要求:
(1)用顺序线性表存储整数,每个单元存储4位。
(2)输出格式:fact(n)=n!,n用具体的数代替,n!从个位向左,每4位一组,组间用空格隔开,最左边若正好4位一组,符号与数字之间不必间隔。
3、一元稀疏多项式运算器
要求:
(1)用单链表作为多项式的存储结构,多项式的每一项只存储系数和指数多项式各项的顺序为:按照指数降序排列,如:5x^8-3x^3+x^2-9(输出也是如此格式)。
(2)实现多项式的输入、输出和加、减和乘法运算,运算结果也按(1)中的格式存储和输出。
(3)人机交互界面。
4、集合的交、并和差运算。
要求:
(1)以顺序线性表作为集合的存储结构,集合的元素限定为字符型。
(2)实现集合的输入、输出、交、并和差。可以用字符串的形式进行输入输出。(3)人机交互界面。
5、通讯录管理系统。
要求:
(1)用双向链表作为通讯录的存储结构。每条通讯录包含:姓名,城市,电话,查找频度。链表中的结点按照查找频度非递增排列,查找频度初始均为0,每查找某条记录一次,该记录的查找频度增1,并调整其在聊表中的位置,使得链表保持非递增顺序。(2)实现增加、删除、修改、显示、查找功能(以姓名作为关键字查找)
(3)人机交互界面。
6、算术表达式求值。
要求:
(1)实现算术(整数)表达式的加、减、乘、除四则运算,表达式可带括号。
(2)建立算法优先关系表。
(3)建立操作数栈和运算符栈。表达式以字符串的形式输入。
(4)能够检查出不合法的表达式,并给出出错信息。
7、文本处理
要求:
(1)将外存上的一篇文章,每次读入一段,存储到自定义的字符串中。字符串用堆分配存储结构。
(2)统计一篇文章的字数(包括标点符号,但不包括段落标记)
(3)输入一个词,在文章中进行查找,给出该词出现的段落和在段落中的具体位置。(4)在文章中进行字符串替换。
(5)将文章存盘。
(6)人机交互界面。
8、稀疏矩阵运算器。
要求:
(1)以“带行逻辑链接信息”的三元组顺序表作为稀疏矩阵的存储结构。
(2)实现稀疏矩阵的输入、输出以及加、减、乘法运算,并输出结果。
(3)人机交互界面。
9、稀疏矩阵运算器。
要求:
(1)以十字链表作为稀疏矩阵的存储结构。
(2)实现稀疏矩阵的输入、输出以及加、减、乘法运算,并输出结果。
(3)人机交互界面。
10、赫夫曼编/译码器
要求:
(1)参考教材,采用顺序结构存储赫夫曼树。
(2)实现以下功能:
●初始化:从键盘终端读入字符集大小n,以及n个字符和n个权值(按照习题集
P149表格中的字符和权值),建立赫夫曼树(选作:可将赫夫曼树存入文件hfmTree文件中)。
●编码:利用已建好的赫夫曼树对文件进行编码,将结果存入文件CodeFile中。
●译码:利用已建好的赫夫曼树对文件CodeFile中的代码进行译码,结果存入文
件TextFile中。
●若实现了将赫夫曼树存入文件hfmTree中,执行编码或译码时,若赫夫曼树不
在内存,则需读入,否则不必再读入。若未实现将赫夫曼树存入文件hfmTree 中,则不必考虑。
●人机交互界面。
11、河南科技学院下设17个二级学院,每个二级学院下设若干专业,各个专业下分多个班级,为了方便教师和学生了解各个学院的情况,请你为我校的机构设计一棵树。要求:
(1)建立我校的机构树。树的存储结构采用左孩子-右兄弟链表。
(2)输出所有的二级学院的名称。
(3)查询并输出某个二级学院下设的各个专业的名称。
(4)查询并输出某专业所属二级学院的名称,如:计算机科学与技术专业所属二级学院:信息工程学院。
(5)查询并输出某班级所属专业的名称和所属二级学院的名称,如:计科121所属专业:计算机科学与技术,所属二级学院:信息工程学院。
(6)人机交互界面。
12、家谱。
要求:
(1)为该家族建立家谱树,用左孩子-右兄弟链表作为家谱的存储结构。每个人的信息包含以下内容:姓名,性别,婚姻状况(0表未婚,1表已婚),子女数。若已婚,其配偶作为其左孩子,其配偶的右子树上依次为其各个子女。
(2)查询并输出某人的基本信息。
(3)查询并输出某人配偶的基本信息。
(4)查询并输出某人的子女数及所有子女的基本信息。
(5)人机交互界面。
13、编写程序,求二叉树上从根到叶子结点的一条其路径长度等于二叉树的深度减1的路径(列出从根到叶子结点的结点序列),若存在多条这样的路径,则输出路径终点(叶子结点)在最左的一条。
14、凹入法打印树。假设树上每个结点所含的数据元素为一个字母,并以孩子-兄弟链
表为树的存储结构。左下的树打印为右下形状。
15、无向图的遍历。
要求:以邻接多重表为存储结构,分别实现深度和广度优先遍历。
16、有向图的遍历。
要求:以十字链表为存储结构,分别实现深度和广度优先遍历。。
17、最小生成树。我校计划在各学生宿舍楼间铺设光纤,建立局域网。为节省费用,请你给出代价最小的方案。
要求:用克鲁斯卡尔算法实现。筛选最小代价边时用堆排序方法。
18、图的基本操作。在邻接矩阵存储结构上实现无向图和有向图的基本操作:InsertVex(G,v), InsertArc(G,v,w), DeleteVex(G,v), DeleteArc(G,v,w)。
要求:
为了检验结果,需要建立无向图和有向图、输出图中的顶点和边。
19、图的基本操作。在邻接表存储结构上实现无向图和有向图的基本操作:InsertVex(G,v), InsertArc(G,v,w), DeleteVex(G,v), DeleteArc(G,v,w)。
要求:
为了检验结果,需要建立无向图和有向图、输出图中的顶点和边。
20、图的基本操作。在邻接多重表存储结构上实现无向图的基本操作:InsertVex(G,v), InsertArc(G,v,w), DeleteVex(G,v), DeleteArc(G,v,w)。
要求:
为了检验结果,需要建立无向图、输出图中的顶点和边。
21、图的基本操作。在邻接多重表存储结构上实现有向图的基本操作:InsertVex(G,v), InsertArc(G,v,w), DeleteVex(G,v), DeleteArc(G,v,w)。