- 3
- 0
- 约3.04千字
- 约 9页
- 2017-08-31 发布于重庆
- 举报
数据结构课程设计报告队列问题
海 南 大 学
《数据结构》课程设计
学 号: 2010
姓 名:
年 级: 2010级
学 院: 经济与管理
专 业:
分 数:
队列问题课程设计报告
程序分析和设计
关于队列存储,就像日常生活中排队一样,先进先出,相对来说是比较容易理解的。构造思路也相对简单,主要分为三大块:
主函数。主要功能是:定义函数,分析菜单选项,输入自定义字符串进入队列。
主函数中,首先通过scanf函数与printf函数输入并打印出用户输入的原始字符串。然后通过do-switch语句定义菜单。
插入函数。主要功能是在队列中插入数据。由于队列是先进先出,插入的数据只能插入队列的末尾。若定义插入变量为b,字符串长度为len,则插入语句为:a[len]=b。
删除函数。主要功能是删除数据。同样,由于队列是先进先出形式的,所以删除的数据只能是现有队列的第一位。
要删除的数据即为b=a[0](同样定义要删除的数据变量为b)。然后再用for循环语句结合数组,输出删除数据后的字符串。即把队列中的后一个字符赋给前一个位置,即a[i]=a[i+1],i从i=0开始,然后i++,到ilen为止(len为队列字符串长度)。
流程图
源程序清单
#includestdio.h
#includestring.h
void ins(); /*定义插入函数*/
void del(); /*定义删除函数*/
char a[50]; /*定义数组,便于输入字符*/
void main()
{
int m; /*定义整形变量m,便于输入选择项*/
printf(************请 输 入 字 符 串 进 入 队 列************\n);
gets(a); /*输入字符串进入队列*/
do /*do-while语句,菜单*/
{
printf(************ 请 选 择 操 作 选 项 ***************\n);
printf(1.插入数据\n2.刪除数据\n3.退出程序\n);
scanf(%d,m);
switch(m)
{
case 1:ins();break;
case 2:del();break;
case 3:break;
}
}while(m!=3);
}
void ins() /*插入函数*/
{
int len;
char b;
printf(请输入要插入的数据:\n);
scanf(%c,b);
scanf(%c,b);
len=strlen(a);
a[len]=b;
a[len+1]=\0;
printf(\n插入新数据后的队列为:\n);
puts(a);
printf(\n);
}
void del() /*删除函数*/
{
int i,len;
char b;
b=a[0];
len=strlen(a);
for(i=0;ilen;i++)
{
a[i]=a[i+1];
}
a[len]=\0;
printf(删除的数据为:\n %c\n,b);
printf(删除数据后的队列为:\n);
puts(a);
printf(\n);
}
调试过程
测试数据及结果
测试数据:abcdefg
测试结果:
选择1,输入插入数据“p”,输出结果为:“插入新数据后的队列为:abcdefgp”。
选择2,输出结果为:“删
您可能关注的文档
最近下载
- 2026年高考全国II卷文科综合真题试卷(新课标卷)(+答案).docx VIP
- 安路科技(688107)补国产短板,突高端应用,拓新应用与技术大市场-240717-东北证券-38页.pdf VIP
- [搞笑小品剧本]上当了小品剧本.docx VIP
- 全国初中数学联合竞赛真题及答案(初二组)2015-年.pdf VIP
- 数据中心800V直流供电技术白皮书2.0.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 中国教育行业人才流动与薪酬水平_2025年12月.docx
- 2024全国初中数学联赛初二卷 .pdf VIP
- AIAG-VDA-SPC手册-Yellow-Volume2026年2月第一版 中文.pdf VIP
原创力文档

文档评论(0)