河北工业大学2014数据结构实验报告讲述.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学2014数据结构实验报告讲述

河北工业大学 《数据结构》 2014版 实验报告 实验一、约瑟夫环 【源代码】 #includestdio.h #includestdlib.h struct Lnode {int number; int password; struct Lnode *next; }Lnode,*p,*q; int main() {int n; int i; int m; int j; printf(please enter the number of people n:); scanf(%d,n); if(n=0||n30) {printf(n is erorr!\n); printf(please enter the number of people again :); scanf(%d,n); } for(i=1;i=n;i++) { if(i==1) {p=q=(struct Lnode*)malloc(sizeof(struct Lnode));} else { q-next=(struct Lnode*)malloc(sizeof(struct Lnode)); q=q-next; } printf(please enter the %d peoples password:,i); scanf(%d,(q-password)); q-number=i; } q-next=p; printf(please enter the number m:); scanf(%d,m); printf(The password is:\n); for(j=1;j=n;j++) { for(i=1;i=m-1;i++) {q=p;p=p-next;} m=p-password; printf(%d ,p-number); q-next=p-next; free(p); p=q-next; } printf(\n); } 【实验感想】 这次编写约瑟夫环程序虽然用了很长时间,但是当程序正确运行的时候,真的感觉特别开心!我一边画图,一边分析,一边调试,在许多次的调试过程中,我注意到了好多问题,有很多细节真的是有一点不对就会满盘皆输,而且每次感觉能成功编好的情况下,把代码敲进机器却总是得不到正确的答案,感觉很郁闷,也想放弃过,但是最后还是坚持下来了。总共用了一天的时间。可能是因为我课本知识掌握的不扎实,而且很久没有编写程序了,第一次上机感觉有困难。编代码的时候走了好多弯路,其中有一个弯路就是我设立了一个头节点,然后还自以为很聪明的把头节点绕了过去,等等。很多类似的错误,都是以前觉得自己没问题,一上机才知道原来还存在很多问题。 这是第一次数据结构上机课,以前跟老师上课的时候总是感觉对这种类C语言很陌生,不像和以前学C/C++语言那样,书上的程序一看就知道什么意思,而且这些算法是包含思想的,必须要自己想的特别明白。 简单总结一下思路: 我觉得程序大致分三块 是???结构体定义节点类型,每个节点有3个域,两个数据域,一个指针域 定义好节点之后,利用指针形成链表,但有一点要注意就是不需要头节点,并且最后一个节点的指针要指向第一个节点,从而构成循环链表 删除节点,但关键点是指针的位置一定要移动正确,我觉得这部分一定要想的非常明白才能正确的编出程序 通过这次编程,首先我把约瑟夫环问题的算法弄的非常明白,也通过实验夯实了课内学到的许多知识,在计算机上得到了印证,现在对于定义链表还有对节点进行删除、插入操作也弄的非常明白。总之,上机能很好的巩固上课学到的知识,正确的编出程序也会觉得很有成就感,很开心,收获颇多! 实验二、停车场管理 【源代码】 #includeiostream #define n 2 //将停车场的容量设为2 #define cost 10 //将单位时间的停车费设为10,车道里不收费 #define OVERFLOW -2 #define ERROR 0 //分配栈的存储空间失败; using namespace std; typedef struct Elem {//定义元素数据结构类型 int carnum; int time; }Elem; typedef struct QNode {//队列 struct QNode *next; Elem Qelem; }QNode,*QueuePtr; typedef struct { QueuePtr front;//队头指针 QueuePtr rear;//

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档