数据结构课程设计题目汇总及要求.docx
《数据结构课程设计题目汇总及要求.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计题目汇总及要求.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构课程设计题目汇总及要求
数据结构课程设计题目
课程设计题一:
线性表子系统
一.设计目的:
1.掌握线性表的特点
2.掌握线性表的顺序存储结构和链式存储结构的基本运算
3.掌握线性表的基本操作
二.设计内容和要求:
1.设计一个选择式菜单。
线性表子系统
******************************************************
*1……建表*
*2……插入*
*3……删除*
*4……显示*
*5……查找*
*6……求表长*
*0……返回*
******************************************************
请选择菜单号(0…6):
2.采用单链表创建线性表。
3.在线性表中实现插入、删除元素,显示线性表中所有元素,查找元素和求线性表长的基本操作。
课程设计题二:
栈子系统
一.设计目的:
1.掌握栈的特点及其描述方法
2.掌握链式存储结构实现一个栈
3.掌握链栈的各种基本操作
4.掌握栈的典型应用的算法
二.设计内容和要求:
1.设计一个选择式菜单。
栈子系统
******************************************************
*1……入栈*
*2……出栈*
*3……显示*
*4……数制转换*
*0……返回*
******************************************************
请选择菜单号(0…4):
2.设计一个整型数据元素的链栈。
3.编写入栈、出栈和显示栈中全部元素的程序。
4.编写一个把十进制数转换成八进制数的应用程序。
课程设计题三:
队列子系统
一.设计目的:
1.掌握队列的特点及其描述方法
2.掌握链式存储结构实现一个队列
3.掌握队列的各种基本操作
4.掌握队列简单应用的算法
二.设计内容和要求:
1.设计一个选择式菜单。
队列子系统
******************************************************
*1……入队*
*2……出队*
*3……读队首元素*
*4……显示*
*5……报数问题*
*0……退出*
******************************************************
请选择菜单号(0…5):
2.设计一个整型数据元素的链队列。
3.编写入队、出队、读队首元素、显示队列中全部元素的程序。
4.编写求解报数问题的应用程序,要求给出他们的出列顺序。
注:
所谓报数问题,设n个人站成一排,从左到右的编号分别为1~n,从左到右报数“1,2,3,1,2,3”,数到“1”和“2”的人出列,数到“3”的人立即站到队伍的最右端。
报数过程反复进行,直到n个人都出列为止。
如:
n=10时,初始序列为12345678910,
出列顺序为12457810369。
上面红色字体部分不要写到课程设计报告中。
课程设计题四:
稀疏矩阵的运算
一.设计目的:
1.掌握多维数组的逻辑结构和存储结构
2.掌握稀疏矩阵的压缩存储及基本操作
二.设计内容和要求:
1.稀疏矩阵A采用三元组表示。
2.求出A的转置矩阵D,输出D。
课程设计题五:
二叉树子系统
一.设计目的:
1.掌握二叉树的特点及其存储方式
2.掌握二叉树的创建方法
3.掌握二叉树遍历的基本方法
4.掌握求二叉树叶子结点数的基本算法
二.设计内容和要求:
1.设计一个选择式菜单。
二叉树子系统
******************************************************
*1……建二叉树*
*2……先序遍历*
*3……中序遍历*
*4……后序遍历*
*5……求叶子数*
*0……返回*
******************************************************
请选择菜单号(0…5):
2.编写先序遍历和中序遍历递归程序、后序遍历的非递归程序。
3.编写求二叉树的叶子结点数的程序。
课程设计题六:
二叉树操作
(1)
一.设计目的:
1.掌握二叉树的概念和性质
2.掌握二叉树的存储结构
3.掌握二叉树的基本操作
二.设计内容和要求:
1.编写已知二叉树的先序、中序序列,恢复此二叉树的程序。
2.编写求二叉树深度的程序。
课程设计题七:
二叉树操作
(2)
一.设计目的:
1.掌握二叉树的概念和性质
2.掌握二叉树的存储结构
3.掌握二叉树的基本操作
二.设计内容和要求:
1.编写已知二叉树的后序、中序序列,恢复此二叉树的程序。
2.编写求二叉树结点数的程序。
课程设计题八:
哈夫曼树和哈夫曼编码
一.设计目的:
1.掌握构造哈夫曼树的原理
2.掌握哈夫曼树的逻辑结构和存储结构
3.掌握哈夫曼树与哈夫曼编码的基本操作
二.设计内容和要求:
1.根据字符出现的频度建立哈夫曼树。
2.确定和输出各字符的哈夫曼编码。
课程设计题九:
图子系统
一.设计目的:
1.掌握图邻接表的存储方法
2.掌握图深度优先遍历的基本思想
3.掌握图广度优先遍历的基本思想
二.设计内容和要求:
1.对任意给定的图(顶点数和边数自定),建立它的邻接表并输出。
2.编写图的深度优先遍历程序。
3.利用队列的基本运算实现图的广度优先遍历。
课程设计题十:
普里姆算法求最小生成树
一.设计目的:
1.掌握图的存储方法
2.掌握普里姆算法求解最小生成树
二.设计内容和要求:
1.对教材174页7.16的a图建立它的邻接表。
2.用普里姆算法求其最小生成树,依次输出顶点集合和边集合。
课程设计题十一:
克鲁斯卡尔算法求最小生成树
一.设计目的:
1.掌握图的存储方法
2.掌握鲁斯卡尔算法求解最小生成树
二.设计内容和要求:
1.对教材174页7.16的a图建立它的邻接表。
2.用克鲁斯卡尔算法求其最小生成树,依次输出顶点集合和边集合。
课程设计题十二:
查找子系统
(1)
一.设计目的:
1.理解查找的基本算法
2.掌握静态查找和动态查找的区别
3.掌握折半查找和哈希查找的基本思想及其算法
二.设计内容和要求:
1.设计一个选择式菜单。
查找子系统
******************************************************
*1……折半查找*
*2……哈希查找*
*0……返回*
******************************************************
请选择菜单号(0…2):
2.分别实现折半查找和哈希查找。
3.哈希函数采用除留余数法,解决冲突的方法任选。
课程设计题十三:
查找子系统
(2)
一.设计目的:
1.理解查找的基本算法
2.掌握静态查找和动态查找的区别
3.掌握顺序查找和二叉排序树的基本思想及其算法
二.设计内容和要求:
1.设计一个选择式菜单。
查找子系统
******************************************************
*1……顺序查找*
*2……二叉排序树*
*0……返回*
******************************************************
请选择菜单号(0…2):
2.分别实现顺序查找和二叉排序树。
3.二叉排序树必须实现构建、查找、插入的基本操作。
课程设计题十四:
排序子系统
(1)
一.设计目的:
1.掌握常用排序方法的基本思想
2.通过实验加深理解各种排序算法
3.了解各种排序方法的优缺点及适用范围
二.设计内容和要求:
1.设计一个选择式菜单。
排序子系统
******************************************************
*1……起泡排序*
*2……快速排序*
*0……返回*
******************************************************
请选择菜单号(0…2):
2.编写起泡排序程序。
3.编写快速排序程序。
课程设计题十五:
排序子系统
(2)
XX文库-让每个人平等地提升自我一.设计目的:
1.掌握常用排序方法的基本思想
2.通过实验加深理解各种排序算法
3.了解各种排序方法的优缺点及适用范围
二.设计内容和要求:
XX文库-让每个人平等地提升自我1.设计一个选择式菜单。
XX文库-让每个人平等地提升自我排序子系统
******************************************************
*1……直接插入排序*
*2……希尔排序*
*0……返回*
******************************************************
请选择菜单号(0…2):
2.编写直接插入排序程序。
3.编写希尔排序程序。
课程设计题十六:
通讯录管理
一.设计目的:
1.掌握线性表的特点
2.掌握线性表的顺序存储结构和链式存储结构的基本运算
3.掌握线性表的基本操作
二.设计内容和要求:
通讯录实质上是一个线性表,由于通讯录长度不确定,且插入或删除操作比较频繁,因此,采用单链式存储结构。
要求实现如下功能:
1.设计一个选择式菜单。
通讯录管理系统
******************************************************
*1……通讯录单链表的建立*
*2……通讯者的插入*
*3……通讯者的删除*
*4……通讯者的查询*
*0……退出*
******************************************************
请选择菜单号(0…4):
2.编程实现通讯录单链表的建立、通讯者的插入、通讯者的删除、通讯者的查询、通讯录的输出。
课程设计题十七:
约瑟夫生者死者游戏
一.设计目的:
1.掌握线性表的特点
2.掌握单循环链表的建立和基本运算
二.设计内容和要求:
30个旅客同乘一条船,因为严重超载,必须将全船一半的旅客投入海中,其余人才能幸免遇难。
大家同意一种办法:
30人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。
要求实现如下功能:
1.建立一个具有30个结点的单循环链表;
2.生者与死者的选择:
从位置为1的结点开始数,数到第8个结点,将其下一个结点从单循环链表中删除,然后,再从被删除结点的下一个结点开始数,数到第8个结点,再将其下一个结点删除,如此下去,直到剩下15个结点为止;
3.输出所有生者的位置。
课程设计题十八:
迷宫求解
一.设计目的:
1.掌握栈的特点及其描述方法
2.掌握链栈的各种基本操作
二.设计内容和要求:
由0和1构成的m*n维矩阵表示一个迷宫,其中0表示通路,1表示墙壁。
迷宫入口为(1,1),出口为(m,n)。
迷宫随机产生。
试编一算法求出从入口到出口的一条通路,或显示没有通路。
要求实现如下功能:
1.从键盘输入m和n,随机产生迷宫。
2.找到一条通路即可,若没有显示“Nopath!
”。
上面的图不要写到课程设计报告中。
课程设计题十九:
算术表达式求值的实现
一.设计目的:
1.掌握栈的顺序存储结构和链式存储结构
2.掌握栈的先进后出的特点
3.掌握栈的基本运算
二.设计内容和要求:
1.算术表达式由操作数、运算符和界限符组成。
操作数是正整数,运算符为加减乘除,界限符有左右括号和表达式起始。
2.将一个算术表达式的中缀形式转化为相应的后缀形式。
3.依据后缀表达式计算表达式的值。
课程设计题二十:
杨辉三角队列的实现
一.设计目的:
1.掌握队列的顺序存储结构
2.掌握队列先进先出运算原则在解决实际问题中的应用
二.设计内容和要求:
利用循环顺序队列打印杨辉三角。
杨辉三角的特点是两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和。
所以在打印过程中,第i行上的元素要由第i-1行中的元素来生成。
在循环队列中依次存放第i-1行上的元素,然后逐个出队并打印,同时生成第i行元素并入队列。
打印的杨辉三角形如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1