数据结构实验报告完整.docVIP

  • 234
  • 1
  • 约1.32万字
  • 约 28页
  • 2017-05-21 发布于浙江
  • 举报
数据结构实验报告完整

华北电力大学 实 验 报 告 | | 实验名称 数据结构实验 课程名称 数据结构 | | 专业班级: 学生姓名: 学 号: 成 绩: 指导教师: 实验日期:2015/7/3 实验报告说明: 本次实验报告共包含六个实验,分别为:简易停车场管理、约瑟夫环(基于链表和数组)、二叉树的建立和三种遍历、 图的建立和两种遍历、hash-telbook和公司招工系统。 编译环境:visual studio 2010 使用语言:C++ 所有程序经调试均能正常运行 实验目录 实验一 约瑟夫环(基于链表和数组) 实验二 简易停车场管理 实验三 二叉树的建立和三种遍历 实验四 图的建立和两种遍历 实验五 哈希表的设计 实验一:约瑟夫环 一、实验目的 1.熟悉循环链表的定义和有关操作。 二、实验要求 1.认真阅读和掌握实验内容。 2.用循环链表解决约瑟夫问题。 3.输入和运行编出的相关操作的程序。 4.保存程序运行结果 , 并结合输入数据进行分析。 三、所用仪器设备 PC机。 Microsoft Visual C++运行环境。 四、实验原理 1.约瑟夫问题解决方案: 用两个指针分别指向链表开头和下一个,两指针依次挪动,符合题意就输出结点数据,在调整指针,删掉该结点。 五、代码 1、基于链表 #includeiostream.h using namespace std; struct Node { int data; Node* next; }; void main() { int m,n,j=1; cout请输入m的值:;cinm; cout请输入n的值:;cinn; Node* head=NULL; Node* s=new Node; for(int i=1;i=n;i++) { Node* p=new Node; p-data=n+1-i; p-next=head; head=p; if(i==1) s=head; } Node* p=new Node; p=head; s-next=head; while(p!=s) { while(j!=m) { p=p-next; s=s-next; j++; } coutp-data; s-next=p-next; delete p; p=s-next; j=1; } coutp-dataendl; delete p; } 2、基于数组 #includeiostream.h void main() { int m,n,s=0,j=1; cout请输入m的值:;cinm; cout请输入n的值:;cinn; int *a=new int[n]; for(int i=0;in;i++) a[i]=i+1; while(n!=0) { if(j==m) { couta[s]; j=0; if(s!=n-1) { for(i=s;in-1;i++) a[i]=a[i+1]; } n--; j++; if(sn-1) s=0; } else { j++; s++; if(sn-1) s=0; } } delete []a; coutendl; } 六、实验结果 1.输入:总人数8;数到 4出列;从第 1人开始; 按照理论应有出队序列:4 8 5 2 1 3 7 6. 2.实验输入输出: 实验二:停车场管理 一、实验目的 1.熟悉栈和队的定义和有关操作。 二、实验要求 1.认真阅读和掌握实验内容。 2.用栈和队解决停车场问题。 3.输入和运行编出的相关操作的程序。 4.保存程序运行结果 , 并结合输入数据进行分析。 三、所用仪器设备 PC机。 Microsoft Visual C++运行环境。 四、代码 #includeiostream. using namespace std; //栈在这里用顺序结构实现 int N; int cnum; //定义作为车牌号的变量 struct stack//定义栈 { int cstack[9999];//这里随便定义一个数字表示数组的长度,因为后面会根据用户输入的N值作为停车场能够停车的数量.

文档评论(0)

1亿VIP精品文档

相关文档