西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)

上传人:绿** 文档编号:61837681 上传时间:2018-12-13 格式:DOC 页数:21 大小:272.65KB
返回 下载 相关 举报
西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)_第1页
第1页 / 共21页
西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)_第2页
第2页 / 共21页
西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)_第3页
第3页 / 共21页
西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)_第4页
第4页 / 共21页
西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)》由会员分享,可在线阅读,更多相关《西安邮电大学计算机学院数据结构课内实验报告(线性表的应用)(21页珍藏版)》请在金锄头文库上搜索。

1、西 安 邮 电 大 学 (计算机学院)数据结构课内实验报告实验名称: 线性表的应用 专业名称: 电子商务班 级: 学生姓名: 学号(8位): 指导教师: 实验日期: 2014年 10 月 15 日一. 实验目的及实验环境1. 实验目的熟悉并掌握线性表如何构建,并学会线性表的基本应用和两种存储结构的实现2. 实验环境VC+6.0二. 实验内容约瑟夫问题:编号为1、2、3.,按顺时针坐在一张圆桌周围,每人持有一个密码,一个人选任意正整数为报数上限m,从第一个人开始报数报到m时停止报数,这个人出列,直到所有的人都出列,游戏结束。用线性表的内容来实现这个程序。三方案设计第一步:建立n个节点的无头循环链

2、表。第二步:从链表的第一个节点开始计数,直到寻找到第m个节点第三步:输出该节点的id值,并将其password值,作为新的m值第四步:根据新的m值,继续删除节点,直到循环链表为空,程序结束四测试数据及运行结果1正常测试数据(3组)及运行结果;第一组:测试数据:9、5、2、3、4、1 运行结果截图为:第二组:测试数据:5、2、6、1、2、3、4 运行结果截图:第三组:测试数据:3、2、1、6、9 运行结果截图:2非正常测试数据(2组)及运行结果。 第一组:测试数据:1、0、2、0运行结果截图为:第二组:测试数据:0、0、0、0、0运行结果截图为:五总结六附录:源代码(电子版)#include#i

3、ncludetypedef struct nodeint id;int password;struct node *next;lnode,*list;list creat2()lnode *head,*p,*q;int m,n=2;head=(lnode *)malloc(sizeof(lnode);head-next=NULL;q=head;printf(please input the initial password:);scanf(%d,&m);head-password=m;head-id=1;printf(please input(password):);scanf(%d,&m);

4、while(m!=-1)p=(list)malloc(sizeof(lnode);p-password=m;p-id=n;q-next=p;q=p;printf(please input(password):);scanf(%d,&m);n+;p-next=head;return head;void print(lnode *q)lnode *p;printf(%4d,%4dn,q-id,q-password);p=q-next;while(p!=q)printf(%4d,%4dn,p-id,p-password);p=p-next;printf(n);list front(list q) l

5、ist p; p=q-next; while(p-next!=q) p=p-next; return p;void deletee(list q)list p,r;int i,m=q-password;p=q;while(p-next!=p)i=1;while(i!=m) p=p-next; i+; printf(%4d,%4dn,p-id,p-password); p=front(p); r=p-next; p-next=r-next; m=r-password; free(r); p=p-next;printf(%4d,%4dn,p-id,p-password);void main()li

6、st head;head=creat2(); printf(=打印队列原有情况=n);print(head);printf(=打印出队情况=n);deletee(head);西 安 邮 电 大 学 (计算机学院)数据结构课内实验报告实验名称: 栈和队列的应用 专业名称: 电子商务班 级: 学生姓名: 学号(8位): 指导教师: 衡 霞实验日期: 2014年11 月 10 日一. 实验目的及实验环境 1、实验目的掌握栈和队列的基本操作,实现栈或队列的基本应用 2、实验环境 VC+6.0二. 实验内容 判断输入的一个字符串是否为回文三方案设计第一步:建立一个顺序栈第二步:输入字符串的时候入栈第三步

7、:出栈时也保存到一个数组中第四步:比较两个数组是否完全相同四测试数据及运行结果1正常测试数据(3组)及运行结果; 第一组:测试数据:1、2、3 运行结果:第二组:测试数据:a、b、c运行结果:第三组:测试数据:1、2、a、2、1运行结果:2非正常测试数据(2组)及运行结果。 第一组:测试数据:00、a、b、ba、00 运行结果:第二组:测试数据1、3、5、4、6运行结果:五总结1六附录:源代码(电子版) #include#include#define MAX 20typedef structchar dataMAX;int top;seq;seq *creat()seq *s;s=(seq *

8、)malloc(sizeof(seq);s-top=-1;return s;void push(seq *s,char x)if(s-top)=(MAX-1)printf(栈已满!n);return; elses-top+;s-datas-top=x;void pop(seq *s,char *x)if(s-top=-1)printf(栈为空!n);else*x=s-datas-top;s-top-;void panduan(seq *s) int flag=1;char p120=0,p220=0;int i=0;char m;printf(请输入:);m=getchar();fflush(

9、stdin); for(;m!=-;)/输入!号时结束p1i=m;push(s,m);printf(请输入:); m=getchar();fflush(stdin); i+;i=0;while(s-top!=-1)pop(s,&p2i);i+;for(i=0;i20;i+)if(p1i!=p2i)flag=0;if(flag=1)printf(该字符串是回文!n);elseprintf(该字符串不是回文!n);main()char m;seq *s; s=creat();panduan(s);西 安 邮 电 大 学 (计算机学院)数据结构课内实验报告实验名称: 哈弗曼编译码 专业名称: 电子商

10、务班 级: 学生姓名: 学号(8位): 指导教师: 衡 霞实验日期: 2014年 12 月 5 日一. 实验目的及实验环境1. 实验目的掌握哈弗曼树的创建,熟悉哈弗曼树的编码过程,及解码过程,对二叉树的一个特例做更深的了解2. 实验环境Vc+6.0二. 实验内容 建立一个哈弗曼树,并通过算法实现其编码,输出相应的叶子节点的哈弗曼编码三方案设计第一步:根据哈弗曼树的定义,构建一个哈弗曼树 第二步:根据构建高德哈弗曼树,给相应的叶子节点赋值(原则:左子树为 0,右子树为1)第三步:输出相应的编码值四测试数据及运行结果1正常测试数据(3组)及运行结果; 第一组:测试数据:1、3、6、9 运行结果截图为:第二组:测试数据:2、5、6、7、8运行结果:第三组:测试数据1、2、3、4运行结果:2非正常测试数据(2组)及运行结果。第一组:测试数据:0、0、0、0运行结果:第二组:测试数据:a运行结果:五总结1实验过程中遇到的问题及解决办法; 六附录:源代码(电子版)#include #include #define MAXBIT 100#define MAXVALUE 10000#define MAXLEAF 30#define MAXNODE MAXLEAF*2 -1 typedef struct

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

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

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