数据结构实验总结及源代码

上传人:鲁** 文档编号:487416560 上传时间:2024-01-14 格式:DOC 页数:26 大小:66KB
返回 下载 相关 举报
数据结构实验总结及源代码_第1页
第1页 / 共26页
数据结构实验总结及源代码_第2页
第2页 / 共26页
数据结构实验总结及源代码_第3页
第3页 / 共26页
数据结构实验总结及源代码_第4页
第4页 / 共26页
数据结构实验总结及源代码_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据结构实验总结及源代码》由会员分享,可在线阅读,更多相关《数据结构实验总结及源代码(26页珍藏版)》请在金锄头文库上搜索。

1、实验1线性表1问题描述:使用线性表实现一个通讯录,通讯录内容有:学号姓名、电话号码。使其完成以下功能。(1)建立一个通讯录(2)插入一个数据元素(3)删除一个元素,返回其值(4)结束程序请写出基本的算法思想,以及源程序代码。实验2括号匹配问题描述编写一程序判断从键盘输入的子符串括号是否匹配。假设需判断的括号只有“(”,“)”,“”,“”四种。实验4病人看病模拟程序【问题描述】编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队的过程中,主要重复两件事:(1) 病人到达诊室,将病历本交给护士,排到等待队列中候诊。(2) 护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。要求模拟

2、病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:()排队输入排队病人的病历号,加入病人排队队列中。(2) 就诊病人排队队列中最前面的病人就诊,并将其从队列中删除;(3) 查看排队从对首到队尾列出所有的排队病人的病历号;()不再排队,余下一次就诊从对首到队尾列出所有的排队病人的病历号,并退出运行;5)下班退出运行;线性表实验源代码#include#include#include#include/structElemType/数据元素的类型intnumb;charname20;longtel;constintMAXSIZE=100;/数组的容量classSqlistprivate:E

3、lemTypeelemMAXSIZE;/结构体的数组intlength;public:Sqlist(void);Sqlist();voidSetData();/建立通讯录;voidInsert(inti,ElemTypee);在位置i,插入一条记录ElemTypeDelet(inti);/删除位置i的记录voidPrintOut();/打印结果;/Sqlist:Sqlist()length=0;/Sqlist:Sqlist()length=0;Sqlist:Sqlist()length=0;voidSqlist:SetData()/初步建立一个通讯录coutlength;for(inti=0;

4、ilength;i+)coutelemi.numb;coutelemi.name;coutelemi.tel;voidSqlist:Insert(inti,ElemTypee)intj;i-;if(ilength)coutiError!i;j-)elemj=elemj-1;/for(j=length;ji;j-)elemj=elemj-1;elemi=e;length+;ElemTypeSqlist:Delet(inti)ElemTypex;intj;i-;if(ilength-1)coutiError!endl;x.numb=-1;elsex=elemi;for(j=i;jlength-1;

5、j+)elemj=elemj+1;/for(j=i;jlength;j+)elemj=elemj+1;length-;returnx;voidSqlist:PrintOut()/输出coutn通讯录总人数:vvlength;coutnPrintOutData:n;coutsetw(16)学号setw(20)姓名setw(20)电话号endl;for(intk=0;klength;k+)coutsetw(16)elemk.numbsetw(20)elemk.namesetw(20)elemk.telcoutendl;/intmain()inti,k;ElemTypee,x;Sqlistas;co

6、utn通讯录演示;docoutnn;coutnn1.初步建立一个通讯录(线性表);coutnn2.插入一个数据元素;coutnn3.删除一个元素,返回其值;coutnn4.结束程序;5coutk;switch(k)case1:as.SetData();as.PrintOut();break;case2:couti;coute.numb;coute.name;coute.tel;as.Insert(i,e);as.PrintOut();break;case3:couti;x=as.Delet(i);coutn被删除的元素数值=setw(10)x.numbsetw(10)x.namesetw(10

7、)=1&k4);coutn再见!;coutn按任意键,返回。;_getch();return0;/括号匹配源代码定/义顺序堆栈存储空间初始分配量存储空间分配增量栈底指针栈顶指针当前已分配的存储空间/创建空堆栈,栈顶指针和栈底指针相等时,栈为空堆栈是否为空/进栈栈满追加存储空出/栈/括号匹配进栈进栈出栈,判断是否为出栈,判断是否为1/出;)现不匹配,立即结束循环/主函数括号不匹配判断堆栈是否为空括号匹配请输入字符串接受输入的回车键你想再试一次吗按继续程序结束医院看病程序源代码链队结点类型链队类型/模拟病人看病的过程创建空队排队1就诊:查看排队不再排队,余下依次就诊:下班请选择:输入病历号:输入的

8、病历号重复,重新输入:创建结点第一个病人排将结点入队队空没有排队的病人病人就诊只有一个病人排队的情况队空没有排队的病人队不空/排队病人:队空没有排队的病人队不空/排队病人:退出队不空请排队的病人明天就医!练习题第二章线性表习题线性表是具有个()的有限序列。(清华年研究生试题)表元素字符数据元素数据项信息项2线性表的静态链表存储结构与顺序存储结构相比优点是()。(中科院软件所01年研究生试题)所有的操作算法实现简单便于随机存取便于插入和删除便于利用零散的存储器空间将如图所示的所指结点加到所指结点之后,其语句应为()(浙大年研究生试题)999线性表有两种存储结构:一是顺序表,二是链表,试问:(西安

9、电子科大99年研究生试题)()如果有个线性表同时共存,并且在处理过程中各表的长度会动态地发生变化,线性表地总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么?2)若线性表地总数基本稳定,且很少进行插入和删除,但要求以最快地速度存取线性表中地元素,那么应采用哪种存储结构?为什么?5用线性表地顺序存储结构来描述一个城市地设计和规划是否合适?为什么?第3章栈和队列作业1若用一个大小为6的数组来实现循环队列,且当和的值分别为和时,从队列中删除一个元素,再加入两个元素后,和的值分别为多少?(复旦大学98年)设栈和队列的初始状态为空,元素和依次通过栈一个元素出栈后即进入队列若个元素出对的序列是则5栈的容量至少应该是多少?(南京理工年)已知一算术表达式的中缀形式为后缀形式为则其前缀形式为什么?(北航年)用表示入栈操作,表示出栈操作,若元素入栈顺序为3为了得到出栈顺序,相应的和操作串为什么?(西南交大200年0)请利用两个栈和来模拟一个队列,已知栈的三个运算定义如下:元素入栈;栈顶元素出栈,赋给变量判栈空否。那么如何用栈的运算来实现该队列的三个运算:u插入一个元素入队列;删除一个元素出队列;判队列为空。(请写明算法的思想及必要的注释)。(西安电子科大0年)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号