搜档网
当前位置:搜档网 › 数据结构课程设计题目

数据结构课程设计题目

数据结构课程设计题目

题目一:工资管理

程序功能简介:完成员工工资信息管理,如员工工资信息的新建、存储、显示、修改和删除等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目二:物品库存管理

程序功能简介:实现物品库存管理,如进库、出库、浏览、修改等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目三:个人财政支出管理

程序功能简介:个人财政支出管理程序,如完成收入、支出、赢余的记录和管理等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目四:电话簿管理

程序功能简介:一个基本的电话簿管理程序,如插入、删除、显示、修改和查询联系人电话号码等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目五:股票交易系统

程序功能简介:股票交易系统的管理,如增加新股票、删除旧股票、挂起股票、住手交易、修改股票的名称、代码、股票买卖等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目六:学生信息管理

程序功能简介:完成学生基本的管理,如学生基本信息的新建、存储、显示、

修改和删除等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目七:学生成绩管理

程序功能简介:完成学生成绩管理,如学生成绩信息的录入、显示、修改和浏

览等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目八:运动会分数统计

任务:参加运动会有 n 个学校,学校编号为1……n。比赛分成 m 个男子项目,

和 w 个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或者前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或者前三名由学生自己设定。 (m<=20,n<=20)

功能要求:

可以输入各个项目的前三名或者前五名的成绩 ;

能统计各学校总分,

可以按学校编号或者名称、学校总分、男女团体总分排序输出 ;

可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或者

前五名的学校。

数据存入文件并能随时查询

规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称

输出形式:有中文提示,各学校分数为整形

界面要求:有合理的提示,每一个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 (数据文件的数据读写方法等相关内容在 c 语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:要求使用 1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明 ;

题目九:飞机订票系统

任务:通过此系统可以实现如下功能:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况 ;

订票:(订票情况可以存在一个数据文件中,结构自己设定)

可以订票,如果该航班已经无票,可以提供相关可选择航班 ;

退票:可退票,退票后修改相关数据文件 ;

客户资料有姓名,证件号,订票数量及航班情况,定单要有编号。

修改航班信息:

当航班信息改变可以修改航班数据文件

要求:

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能 ;

题目十:文章编辑

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过 80 个字符,共 N 行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中浮现的次数, 并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能 ;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;(2)分 4 行输出"全部字母数"、" 数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;

题目十一:宿舍管理查询软件

任务:为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:

采用交互工作方式

建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)

查询菜单: (用二分查找实现以下操作)

按姓名查询

按学号查询

按房号查询

打印任一查询结果(可以连续操作)

题目十二:校园导航问题

设计要求:设计你的学校的平面图,至少包括 10 个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

题目十三:学校超市选址问题(带权有向图的中心点)

设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。

题目十四:教学计划编制问题

设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

题目十五:图书借阅管理系统

主要分为两大功能:

图书管理(增加图书、查询图书、删除图书、图书借阅、还书);

会员管理(增加会员、查询会员、删除会员、借书信息);

题目十六:学生成绩管理

实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。

题目十七:活期储蓄帐目管理

活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 能比较迅速地找到储户的帐户,以实现存款、取款记账 ;

能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

题目十八:通讯录的制作

设计目的:用《数据结构》中的双向链表作数据结构,结合 C 语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开辟中去。

设计内容:本系统应完成一下几方面的功能:

输入信息——enter();

显示信息———display( );

查找以姓名作为关键字———search( );

删除信息———delete( );

存盘———save ( );

装入———load( ) ;

设计要求:

每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE) 几项

作为一个完整的系统,应具有友好的界面和较强的容错能力

上机能正常运行,并写出课程设计报告

题目十九:哈夫曼编码/译码器

【问题描述】

设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直

到选择退出为止。

【基本要求】

将权值数据存放在数据文件(文件名为 data.txt,位于执行程序的当前目录中) 分别采用动态和静态存储结构

初始化:键盘输入字符集大小n、n 个字符和 n 个权值,建立哈夫曼树 ;

编码:利用建好的哈夫曼树生成哈夫曼编码;

输出编码;

设字符集及频度如下表:

字符空格 A B C D E F G H I J K L M

频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z

频度 57 63 15 1 48 51 80 23 8 18 1 16 1

【进一步完成内容】

译码功能;

显示哈夫曼树;

界面设计的优化。

数据结构课程设计可选题目

1.背包问题的求解 2.全国交通咨询模拟 3.一元稀疏多项式计算器 4.马踏棋盘 5.电梯模拟 6.重言式判别 7.教学计划编制 8.全国交通咨询模拟 9.运动会分数统计 10.订票系统 11.文章编辑 12.约瑟夫环(Joseph) 13.校园导游程序 14.任意长的整数加法 15.通讯录管理系统的设计与实现. 16.产品进销存管理系统 17..学生信息管理系统的设计与实现 18.简易电子表格的设计 19.教师信息管理系统的设计与实现 20.电话号码查询系统 21.二叉排序树与平衡二叉树的实现 22.仓库管理系统

23.农夫过河问题的求解 24.图书管理信息系统的设计与实现 25.客户消费积分管理系统 26.商店售货管理系统的设计与实现 27.家谱管理系统 28.排序算法比较 29.算术表达式求值 30.职工工资管理系统的设计与实现 31.房屋销售管理信息系统的设计与实现 32.电视大赛观众投票及排名系统 33.超市管理信息系统的设计与实现 34.药店的药品销售统计系统 35.教师职称管理系统的设计与实现 36.宾馆客房管理系统的设计与实现 37.航空售票处的服务系统 38.营业窗口队列模拟 39.迷宫问题 40.八皇后问题 41.运算器 42.稀疏矩阵运算器 43.电话号码查询系统 44.停车场模拟管理程序的设计与实现

45.哈夫曼编/译码的设计与实现 46.班级学生成绩管理系统 47.个人书籍管理系统的设计与实现 48.稀疏矩阵的应用 49.银行业务模拟 50.最小生成树的Prime算法实现 51.最小生成树的Kruskal算法实现 52.链式串的实现 53.多项式运算的实现 54.数制转换问题 55.关键路径求解 56.纸牌游戏 57.宿舍管理查询软件 58.活期储蓄帐目管理 59.手机通讯录的制作 60.H TML文档标记匹配算法

数据结构课程设计分类题目

线性表顺序表: 1、设有一元素为整数的线性表L=(a 1,a 2 ,a3,…,a n ),存放在一维数组A[N]中,设计一个算法, 以表中a n 作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于a n ,右半 部分每个元素都大于a n , a n 位于分界位置上(要求结果仍存放在A[N]中)。 2、设线性表存于A[1..size]的前num各分量中,且递增有序。请设计一个算法,将x插入到线性表的适当位置上,以保持线性表的有序性。 3、线性表(a 1,a 2 ,a 3 ,…,a n )中元素递增有序且按顺序存储于计算机内。要求设计一算法完成: (1)用最少时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。 (3)若找不到将其插入表中并使表中元素仍递增有序。 4、已知数组A[0:n-1]的元素类型为int,试设计算法将其调整为左右两个部分,左边所有元素为奇数,右边所有元素为偶数。 5、设计一个算法从顺序表L中删除所有值为x的元素 6、设计一个算法从顺序表L中删除所有值为x到y之间(x<=y)的元素 链表: 1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。 2、已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。 3、设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,设计一个将该链表整理成数据递增的有序单链表的算法。 5、设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B、C表利用A表的结点)。 6、试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。 7、设L为单链表的头结点地址,请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。 8、已知两个单链表A和B,其头指针分别为heada和headb,编写一个过程从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个元素之前。9、已知递增有序的单链表A,B分别存储了一个集合,请设计算法以求出两个集合A和B 的差集A-B(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。 10、已知一个单链表中每个结点存放一个整数,并且结点数不少于2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足则返回ture,否则返回false. 11、两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。

数据结构课程设计题目

数据结构课程设计题目 题目一:工资管理 程序功能简介:完成员工工资信息管理,如员工工资信息的新建、存储、显示、修改和删除等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目二:物品库存管理 程序功能简介:实现物品库存管理,如进库、出库、浏览、修改等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目三:个人财政支出管理 程序功能简介:个人财政支出管理程序,如完成收入、支出、赢余的记录和管理等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目四:电话簿管理 程序功能简介:一个基本的电话簿管理程序,如插入、删除、显示、修改和查询联系人电话号码等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目五:股票交易系统 程序功能简介:股票交易系统的管理,如增加新股票、删除旧股票、挂起股票、住手交易、修改股票的名称、代码、股票买卖等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。

题目六:学生信息管理 程序功能简介:完成学生基本的管理,如学生基本信息的新建、存储、显示、 修改和删除等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目七:学生成绩管理 程序功能简介:完成学生成绩管理,如学生成绩信息的录入、显示、修改和浏 览等功能(系统功能可充分自由发挥),最好用文件系统存储数据信息。 题目八:运动会分数统计 任务:参加运动会有 n 个学校,学校编号为1……n。比赛分成 m 个男子项目, 和 w 个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或者前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或者前三名由学生自己设定。 (m<=20,n<=20) 功能要求: 可以输入各个项目的前三名或者前五名的成绩 ; 能统计各学校总分, 可以按学校编号或者名称、学校总分、男女团体总分排序输出 ; 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或者 前五名的学校。 数据存入文件并能随时查询 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称

数据结构课程设计题目整理

数据结构课程设计题目 1.飞机订票系统(限1 人完成)(顺序或链式存储) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息: 当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息,客户信息的存储结构,设计程序完成功能; 2.宿舍管理查询软件(限1 人完成) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: 采用交互工作方式 建立数据文件,包括学生信息、宿舍信息、住宿信息,学生信息按关键字(姓名、学号)进行排序(排序方法自选,不能相同); 查询: (用二分查找实现以下操作) 按姓名查询 按学号查询 (用顺序查找实现以下操作) 按房号查询 3.校园导航问题(限1 人完成) 设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 要求:能增加场所 4.图书借阅管理系统(限1 人完成)(顺序或链式存储) 主要分为两大功能: 1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书); 2)会员管理(增加会员、查询会员、删除会员、借书信息); 5.学生成绩管理(限1 人完成)(顺序或链式存储) 包括:课程信息,学生信息等;能增加课程或学生。 实现功能:输入、输出、插入、删除、查找、显示、保存、排序、退出。6.活期储蓄帐目管理(限1 人完成) 活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 1)能比较迅速地找到储户的帐户,以实现存款、取款记账;

数据结构课程设计参考题目(一)

数据结构课程设计参考题目(一) 数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、 存储、管理和操作等方面的问题。随着计算机技术的发展,数据结构 逐渐成为各个领域必不可少的一门课程。而数据结构课程设计参考题 目是该课程的一项重要内容,它能够帮助学生更好地掌握课程知识, 提高对数据结构的理解和应用能力。以下是几个数据结构课程设计参 考题目。 1.链表操作 设计一个链表类,使得它能够实现插入、删除、查找和遍历链表的操作。要求采用单向链表或双向链表实现,并考虑链表的循环操作。同时,要求能够对链表进行排序操作。 2.栈与队列操作 设计一个栈和队列类,使得它们能够实现入栈、出栈、入队和出队的 操作。要求采用数组或链表实现,并可用于表达式转换和括号匹配等 相关问题。 3.堆排序算法 实现堆排序算法,要求能够对整型数列进行排序,并输出其排序后的 结果。要求堆的构建、删除和调整操作均可用最大堆或最小堆实现。 同时,要求能够对算法的时间复杂度进行分析,并与快速排序等算法 进行比较。 4.哈希表实现 设计一个哈希表类,使其能够实现插入、删除和查找等操作。要求采 用链地址法或开放地址法实现,同时需要考虑哈希函数和扩容等问题。要求能够对哈希冲突的解决方法进行比较和分析。

5.树与图的遍历 实现二叉树、B树或B+树的遍历操作,要求能够实现先序、中序和后序遍历,并能够循环遍历或递归遍历。同时,要求能够对树的平衡性进行探究和讨论。另外,树的遍历也是图的遍历的基础,可以通过深度优先搜索或广度优先搜索实现图的遍历。 以上是一些常见的数据结构课程设计参考题目,它们可以锻炼学生的编程能力、算法分析能力和数据处理能力,同时也可以增强学生对数据结构知识的理解和掌握。

数据结构课程设计参考题目

数据结构课程设计参考题目 数据结构课程设计题目 数据结构课程设计题目(大题目).doc 一、公司销售管理系统 项目开发基本要求 1.客户信息管理:对客户的基本信息进行添加、修改和删除。 2.产品信息管理:对产品的基本信息进行添加、修改和删除。 3.供应商信息管理:对供应商的基本信息进行添加、修改和删除。 4.订单信息管理:对订单的基本信息进行添加、修改和删除。 二、高校科研管理系统 系统主要用于帮助高校或科研单位管理和维护各项科研相关资料 项目开发基本要求 1.系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SC I、核心和一般四种情况。 3.项目参加人员管理模块包括:显示添加修改删除查询。 4.项目基本情况模块包括:显示添加修改删除查询。 5.项目获奖情况模块包括:显示添加修改删除查询。 6.期刊论文管理模块包括:显示添加修改删除查询。 7.著作管理模块包括:显示添加修改删除查询。 8.科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量的计算和统计。 9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分的计算和统计。 三、网络五子棋对战 四、不同排序算法模拟 五、科学计算器

数据结构课程设计题目 1.运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m 个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=2 0) 功能要求: 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5)数据存入文件并能随时查询 6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有合理的提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2.飞机订票系统 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、

数据结构课程设计实例100例

数据结构课程设计实例100例 1. 设计一个简单的栈数据结构。 2. 实现一个简单的队列数据结构。 3. 设计一个链表数据结构。 4. 实现一个二叉树数据结构。 5. 设计一个哈希表数据结构。 6. 实现一个图数据结构。 7. 设计一个堆数据结构。 8. 实现一个优先队列数据结构。 9. 设计一个有向图数据结构。 10. 实现一个循环链表数据结构。 11. 设计一个红黑树数据结构。 12. 实现一个字典数据结构。 13. 设计一个AVL树数据结构。 14. 实现一个散列表数据结构。 15. 设计一个双端队列数据结构。 16. 实现一个字典树数据结构。 17. 设计一个多叉树数据结构。 18. 实现一个最小生成树算法。 19. 设计一个并查集数据结构。 20. 实现一个图的遍历算法。 21. 设计一个迪杰斯特拉算法。 22. 实现一个Floyd算法。 23. 设计一个拓扑排序算法。 24. 实现一个最短路径算法。 25. 设计一个Kruskal算法。

26. 实现一个插入排序算法。 27. 设计一个快速排序算法。 28. 实现一个希尔排序算法。 29. 设计一个选择排序算法。 30. 实现一个冒泡排序算法。 31. 设计一个堆排序算法。 32. 实现一个归并排序算法。 33. 设计一个桶排序算法。 34. 实现一个基数排序算法。 35. 设计一个计数排序算法。 36. 实现一个递归算法。 37. 设计一个动态规划算法。 38. 实现一个回溯算法。 39. 设计一个哈夫曼编码算法。 40. 实现一个最大子序列和算法。 41. 设计一个最长递增子序列算法。 42. 实现一个最长公共子序列算法。 43. 设计一个贪婪算法。 44. 实现一个深度优先搜索算法。 45. 设计一个广度优先搜索算法。 46. 实现一个信号量算法。 47. 设计一个分治算法。 48. 实现一个枚举算法。 49. 设计一个置换算法。 50. 实现一个位运算算法。 51. 设计一个红黑树插入算法。 52. 实现一个二进制查找算法。

《沈阳理工大学数据结构课程设计50题》

题目: 1.键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式, 去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。 2.给定两个序列X=和Y=,要求找出X和Y的一个最长 公共子序列。 3.设一单向链表的头指针为head,链表的记录中包含着整数类型的key域,试设计算法,将 此链表的记录按照key递增的次序进行就地排序.(不允许使用数组做辅助存储) 4.擦数游戏 在黑板上从1开始写出一组连续的自然数,然后擦去其中的一个数k,其余的数的平均值为a/b(a,b为整数)。试编写程序求出被擦去的数k。 5.基数排序 6.连通无向图的非递归遍历。 7.求二叉树根结点到指定结点的路径。 8.判别给定的二叉树是否为二叉排序树。 9.已知二叉树的中序和先序序列,求后序序列。 10.拓扑排序 11.试修改起泡排序,以交替的正、反两个方向进行扫描。即第一趟把排序码最大的记录放 到最末尾,第二趟把排序码最小的记录放到最头上。如此反复进行。 12.矩阵A中的元素若满足:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元 素,则称元素A[i,j]为该矩阵的一个马鞍点。求出m×n矩阵的所有马鞍点。 13.最小生成树(普里母算法实现 28题用其他算法实现) 14.迷宫求解: 在迷宫中求一条路径的算法,基本思想:若当前、位置可通过,则压入栈中,否则探索下一位置,若走不通,则回溯,迷宫大小:M*N。迷宫设置自定义。 15.设明文P=P0P1P2…Pn和密钥K=K0K1K2…Km(n>=m)中的字符Pi(1<=i<=n)或Kj(1<=j<=m) 的ASCII为00~7FH,用密钥K对明文P进行加密得到密文C=C0C1C2…Cn,用密钥K对密文C解密得到明文P。 加密: Ci=Pi+Kj (j=i mod (m+1)) (当Ci<=7FH) Ci=Pi+Kj-80H (j=i mod (m+1)) (当Ci>7FH) 解密:: Pi=Ci-Kj (j=i mod (m+1)) (当Ci>=Kj) Pi=Ci-Kj+80H (j=i mod (m+1)) (当Ci

数据结构课程设计题目(2022春季25题)

数据结构课程设计题目(2022春季25题) 数据结构课程设计题目 题目1:设计链表结构的相关函数库,以便在程序设计中调用。要求:(1)实现链表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。 题目2:设计顺序表结构的相关函数库,以便在程序设计中调用。要求:(1)实现顺序表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。 题目3:设计程序以实现任意两个高次多项式的加法和减法运算。要求:(1)所设计的数据结构应尽可能节省存储空间;(2)程序的运行时间尽可能少。 题目4:设计一个模拟计算机器程序,要求能对包含加、减、乘、除、括号运算符及SQR 和ABS函数的任意整型表达式进行求解。要求:运算前应先检查有关运算条件,并对错误产生报警。 题目5:设计二叉链表结构的相关函数库,以便在程序设计中调用。要求:(1)实现二叉树的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。

题目6:设计树结构的相关函数库,以便在程序设计中调用。要求:(1)包括树的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。 题目7:设计程序以实现构造哈夫曼树的哈夫曼算法。要求:求解所构造的哈夫曼树的带全路径长度。 题目8:设计图结构的相关函数,以便在程序设计中调用。要求:(1)实现图的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。 题目9:设计程序完成如下功能:对给定的图和起点,产生其所有的深度优先遍历序列。 题目10:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Prim算法。 题目11:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Kruskal算法。 题目12:设计程序完成如下功能:对给定的网和起点,用Prim算法的基本思想求解其所有的最小生成树。 题目13:设计程序完成如下功能:对给定的网和起点,用Kruskal算法的基本思想求解其所有的最小生成树。 题目14:选择合适的结构表示图,在此基础上实现拓扑排序算法。要求:对所设计的图结

数据结构课程设计分类题目

线性表 顺序表: 1、设有一元素为整数的线性表L=(a1,a2,a3,…,a n),存放在一维数组A[N]中,设计一个算法,以表中a n作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于a n,右半部分每个元素都大于a n, a n位于分界位置上(要求结果仍存放在A[N]中)。 2、设线性表存于A[1..size]的前num各分量中,且递增有序。请设计一个算法,将x插入到线性表的适当位置上,以保持线性表的有序性。 3、线性表(a1,a2,a3,…,a n)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成: (1)用最少时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。 (3)若找不到将其插入表中并使表中元素仍递增有序。 4、已知数组A[0:n-1]的元素类型为int,试设计算法将其调整为左右两个部分,左边所有元素为奇数,右边所有元素为偶数。 5、设计一个算法从顺序表L中删除所有值为x的元素 6、设计一个算法从顺序表L中删除所有值为x到y之间(x<=y)的元素 链表: 1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。 2、已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。 3、设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,设计一个将该链表整理成数据递增的有序单链表的算法。 5、设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B、C表利用A表的结点)。 6、试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。 7、设L为单链表的头结点地址,请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。 8、已知两个单链表A和B,其头指针分别为heada和headb,编写一个过程从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个元素之前。9、已知递增有序的单链表A,B分别存储了一个集合,请设计算法以求出两个集合A和B 的差集A-B(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。 10、已知一个单链表中每个结点存放一个整数,并且结点数不少于2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足则返回ture,否则返回false. 11、两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。

数据结构课程设计题目(最终版)

数据结构课程设计题目 1、医务室模拟。 问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。试用队列结构进行模拟。 实现要求:要求输出医生的总等待时间和病人的平均等待时间。 程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。 2、招聘模拟 问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。。。,n-1)。每位应聘者可以申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩,从高到低的顺序排队录取。公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。 程序为每个工种保留一个录取者的有序队列。录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。 实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。 3、组织机构问题 问题描述:以青岛理工大学为例,实现对我校组织结构的管理。要求把我校的组织结构以树型结构存储,实现要求: (1)树中每个结点保存部门名称; (2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个? (3)软件可以查询某部门下面的具体编制? 4、最少换车次数问题 问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。编程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。 实现要求:求得从站0出发乘公交车至站n-1的最少换车次数。 设计思路:利用输入信息构建一张有向图G(邻接矩阵存储),有向图的顶点表示车站,若某条公交线路经i站能到达j站,就在图G中存在一条有向边,权值为1。因此,从站x至站y的最少上车次数对应于图G中从顶点x到顶点y的最短路径长度。 5、职工工作量统计 问题描述:采用随机函数产生职工的工号和他所完成产品个数的数据信息,对同一职工多次完成的产品个数进行累计,按职工完成产品数量的名次、该名次每位职工完成的产品数量、同一名次的职工人数和他们的职工号格式输出。 实现要求:输出统计结果,如下所示:

数据结构课程设计可选题目

数据结构课程设计可选题目 一、课程设计的目的 学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计要求同学独立完成一个较为完整的应用需求分析,在完成设计和编程大型作业的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。 二、数据结构课程设计可选题目 1. 运动会分数统计(限1 人完成) 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分,3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;5) 数据存入文件并能随时查询;6) 规定:①输入数据形式和范围:可以输入学校的名称,运动项目的名称; ②输出形式:有中文提示,各学校分数为整形;③界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。④存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上)请在最后的上交资料中指明你用到的存储结构;⑤测试数据:要求使用a.全部合法数据;b.整体非法数据;c.局部非法数据进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。 2. 飞机订票系统 任务:通过此系统可以实现如下功能:⑴录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)⑵查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);⑶可以输入起飞抵达城市,查询飞机航班情况;⑷订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;⑸退票:可退票,退票后修改相关数据文件;⑹客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。⑺修改航班信息:当航班信息改变可以修改航班数据文件。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 3. 文章编辑(限1 人完成)

《数据结构》课程设计选题参考

《数据结构》课程设计选题参考 . 集合运算器设计 编写程序实现两个集合的并、交、相对补、对称差运算,并判断这两个集合是否相等、是否有包含关系。 题目要求: ()输入集合和集合的元素; ()输出集合和的并∪、交∩、相对补、对称差运算⊕; ()输出集合与是否相等的判定结果; ()输出一个集合是否为另一个集合的子集的判定结果; ()输出集合幂集。 输入输出要求: ()集合输入输出形式为:{集合元素,集合元素,…,集合元素}。 ()编写相应菜单,用户通过选择菜单中的相应项来完成相应功能。 . 矩阵计算器设计 编写程序实现任意两个矩阵的加法、减法、乘法运算和矩阵转置运算。 题目要求: ()编写菜单允许用户选择相应的运算操作; ()矩阵的维数可以任意; ()程序能检查在所选择的运算在给定矩阵上是否可执行。 输入输出要求: (1)矩阵输入输出形式为: 集合元素()集合元素()…()集合元素1m(回车) 集合元素()集合元素()…()集合元素2m(回车) …… 集合元素()集合元素()…()集合元素(回车) . 大整数运算器设计 编写程序实现任意大整数的加法、减法、乘法运算。 题目要求: ()大整数长度在十位以上; ()输入两个任意长度的大整数; ()实现两个大整数的加、减、乘法运算; ()输出运算结果; ()编写相应菜单,允许用户选择运算类型。

. 大素数查询器设计 输出指定范围内的所有素数。指定范围不小于。 题目要求: ()找出指定范围内的所有素数; ()统计素数的个数; ()将结果保存到文件。 输入要求: 以上限和下限的形式指定查找范围 输出要求: 查找结果输出到文件,且每个素数占一行。 . 银行排队模拟系统 银行业务越来越丰富,有一般的客户存款或取款、理财金(股票、基金等业务)、外币服务等。每天来银行的客户越来越多,为免除客户排队等待,日前银行均设计有排队管理系统。试编程模拟管理银行的排队业务。 题目要求: ()设置有排队机器,可以实现“理财金”“外币”“个人服务”等种业务的排队。 ()银行窗口接待服务。接待窗口分种“理财”“外币”和“个人业务”,理财和外币业务由专用窗口接待,且这些专用窗口接待完本类业务之后,将继续进行“个人业务”服务。直到全部客户服务均完成。 . 树和树结点增删实现 根据给定关键字建立树和,并可在树和中插入删除关键字。 题目要求: ()读入一组关键字,根据这组关键字建立树和; ()给定关键字,在树和中查找,如找到,则删除之,否则将其插入到合适位置。 ()编写菜单,允许用户选择建何种树。 ()可以一定形式,形象地展示树和树内容。 . 平衡二叉排序树操作演示 根据输入的序列,分步生成平衡二叉树,显示插入过程、调整平衡的过程,以及最终结果。题目要求: ()可由用户输入建立平衡二叉树; ()可由随机生成的序列建立平衡二叉树; ()输出所建立的平衡二叉树的结果;

数据结构课程设计(5篇)

数据结构课程设计(5篇) 第一篇:数据结构课程设计 课程设计说明书 设计名称:数据结构课程设计 题目:设计五:二叉树的相关操作 学生姓名:专业:计算机科学与技术班级:学号:指导教师:日期: 2012 年 3 月 5 日 课程设计任务书 计算机科学与技术专业年级班 一、设计题目 设计五二叉树的相关操作 二、主要内容 建立二叉树,并对树进行相关操作。 三、具体要求 1)利用完全二叉树的性质建立一棵二叉树。(层数不小于4层)2)统计树叶子结点的个数。3)求二叉树的深度。 4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。 四、进度安排 依照教学计划,课程设计时间为:2周。 本设计要求按照软件工程的基本过程完成设计。建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。三个阶段时间分配的大概比例是:35: 45: 20。 五、完成后应上交的材料 本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计

有关源程序及可运行程序(含运行环境)。其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有: 1、课程设计的基本思想,系统的总功能和各子模块的功能说明; 2、课程设计有关算法的描述,并画出有关算法流程图; 3、源程序中核心代码的说明。 4、本课程设计的个人总结,主要包括以下内容: (1)课程设计中遇到的主要问题和解决方法; (2)你的创新和得意之处; (3)设计中存在的不足及改进的设想; (4)本次课程设计的感想和心得体会。 5、源代码要求在关键的位置有注释,增加程序的可读性。程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。 此外,填写在《课程设计说明书》中,必须根据要求认真填写课程设计任务书,排版要求整齐,美观,打印后与课程设计说明书封面一起装订好,并于本学期第6周星期1下午前交到致用楼5楼。 六、总评成绩 指导教师签名日期年月日 系主任审核日期年月日佛山科学技术学院课程设计用纸 目录 一、总体思想..................................................................6 1.1基本思想...............................................................6 1.2系统的总功能.........................................................6 1.3各子模块的功能说明................................................6 1.3.1 结构体部分..................................................................6 1.3.2主函数部分 (6) 1.3.3子函数部分 (6) 二、具体内容..................................................................6 2.1 对应模块的算法流程图.............................................6 2.1.1总的设计思想流程图 (7) 2.1.2创建二叉树函数流程图...................................................7 2.1.3统计叶子数函数流程图...................................................8 2.1.4计算二叉树深度函数流程图.............................................8 2.1.5前序遍历函数流程图 (9) 2.1.6中序遍历函数流程图………………………………………………9 2.1.7后序遍历函数流

数据结构课程设计题目

数据结构课程设计题目 以下7个题目任选其一。 1.排序算法比较 利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且 (1)统计每一种排序上机所花费的时间。 (2)统计在完全正序,完全逆序情况下记录的比较次数和移动次数。 (3)比较的指标为关键字的比较次数和记录的移动次数(一次记录交换计为3次移动)。 (4)对结果作简单分析,包括对各组数据得出结果波动大小的解释。 2.图的深度遍历 对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索遍历。画出搜索顺序示意图。 3.图的广度遍历 对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。画出搜索顺序示意图。 4.二叉树的遍历

对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。画出搜索顺序示意图。 5.链表操作 利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。画出搜索顺序示意图。 6.一元稀疏多项式简单计数器 (1)输入并建立多项式 (2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列。(3)多项式a和b相加,建立多项式a+b,输出相加的多项式。 (4)多项式a和b相减,建立多项式a-b,输出相减的多项式。 用带头结点的单链表存储多项式。 测试数据: (1)(2x+5x8-3.1x11)+(7-5x8+11x9) (2)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3)

数据结构课程设计题目表

数据结构课程设计题目表 《数据结构》课程设计课题表 课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。 要求: (1)所设计的数据结构应尽可能节省存储空间。 (2)程序的运行时间应尽可能少。 课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。 要求:要检查有关运算的条件,并对错误的条件产生报警。 课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括二叉树的各种基本函数以及常用函数(自己确定函数、

函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求: (1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题7:选择合适的存储结构表示广义表,并能实现下列运算要求:(1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。 (3)能用这两个函数的复合形式求出广义表中的指定元素。 (4)由广义表的字符串形式到广义表的转换函数Lists Str_ToLists_(S);例如Str_T oLists_(“ (a,(a,b),c)”)的值为一个广义表。 (5)由广义表到广义表的字符串形式的转换函数char * Lists_To_Str(L)。 (6)最好能设置多个广义表。 课题8:设计程序以实现构造哈夫曼树的哈夫曼算法,要求如下:(1)可以使用实验工具的有关功能。 (2)要能演示构造过程。 (3)求解出所构造的哈夫曼树的带权路径长度。 课题9:采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。

数据结构课程设计题

“数据结构”课程设计题目 1、城市链表 [问题描述] 将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。 [基本要求] (1)给定一个城市名,返回其位置坐标; (2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。 [测试数据] 由学生依据软件工程的测试技术自己确定。注意测试边界数据。 2、约瑟夫生死者游戏 [问题描述] 约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 [基本要求] 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。 [测试数据] m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。 [实现提示] 程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。设n≤30。 [选作内容] 向上述程序中添加在顺序结构上实现的部分。 3、括号匹配的检验 [问题描述]

假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。例如:考虑下列的括号序列:[ ( [ ] [ ] ) ] 1 2 3 4 5 6 7 8 当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4 个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。可见这个处理过程正好和栈的特点相吻合。 [基本要求] 读入圆括号和方括号的任意序列,输出“匹配”或“此串括号匹配不合法”。 [测试数据] 输入([ ]()),结果“匹配” 输入 [()],结果“此串括号匹配不合法” [实现提示] 设置一个栈,每读入一个括号,若是左括号,则作为一个新的更急迫的期待压入栈中;若是右括号,并且与当前栈顶的左括号相匹配,则将当前栈顶的左括号退出,继续读下一个括号,如果读入的右括号与当前栈顶的左括号不匹配,则属于不合法的情况。在初始和结束时,栈应该是空的。 [选作内容] 考虑增加大括号的情况。 4、停车场管理 [问题描述] 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

相关主题