欢迎来到天天文库
浏览记录
ID:35198262
大小:266.50 KB
页数:13页
时间:2019-03-21
《2012《数据结构》上机实验报告链表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、西华大学数计学院学生上机实践报告西华数学与计算机学院上机实践报告课程名称:数据结构年级:2011上机实践成绩:指导教师:唐剑梅姓名:蒋俊上机实践名称:学号:312011080611118上机实践日期:2012-11-6上机实践编号:1上机实践时间:8:00-9:30一、实验目的1.了解线性表的逻辑结构特性,以及这种特性在计算机内的两种存储结构。2.重点是线性表的基本操作在两种存储结构上的实现;其中以链表的操作为侧重点;并进一步学习程序设计方法。3.掌握栈这种数据结构特性及其主要存储结构,并能在现实生活中灵活运用。4.掌握队列这种数据结构特性及其主要存储结构,并能在现实生活中灵活运用。5.了解
2、和掌握递归程序设计的基本原理和方法。6.掌握使用C++面向对象的程序设计技术设计数据结构源程序的方法。二、实验内容1.熟悉前面的【程序示例2】,按照约瑟夫问题的方法2,试着不设头结点改写原来的程序,上机调试运行。2.用链表建立通讯录。通讯录内容有:姓名、通讯地址、电话号码。要求:(1)通讯录按姓名项的字母顺序排列;(2)能查找通讯录中某人的信息;[提示]用链表来存放这个通讯录,一个人的信息作为一个结点。成链的过程可以这样考虑:先把头结点后面的第一个数据元素结点作为链中的首结点,也是末结点。从第二个数据开始逐一作为“工作结点”,需从链表的首结点开始比较,如果“工作结点”的数据元素的姓名字符串比
3、链中的“当前结点”的数据元素的姓名字符串小,就插在其前面。否则,再看后面是否还有结点,若没有结点了就插在其后面成为末结点;若后面还有结点,再与后面的结点逐一比较处理。3.写一个程序,将输入的十进制数据M转换为八进制数据M8,将其调试通过。在此基础上修改程序,实现十进制数据M向N进制(N为2或8或16)的转换。(注:辅助栈的实现可使用【程序示例3】)三、实验环境硬件:微型计算机P4软件:WindowsXP+MicrosoftVisualC++6.0四、程序源码及调试过程第一题1)代码#includestructNodeType//结点的结构定义{intnum;//编号子
4、域intpsw;//密码域第13页共13页西华大学数计学院学生上机实践报告charname[20];//姓名子域NodeType*next;//指针域};classJose//类声明{private:NodeType*Head;public:Jose(){};~Jose(){};voidcreat();voidouts();};voidJose::creat(){inti=0,n;NodeType*newp,*pre;cout<<"输入总人数n=";cin>>n;pre=newNodeType;Head=newNodeType;pre->num=1;cout<<"编号"<<1<<"的
5、人姓名=";cin>>pre->name;cout<<"密码"<<1<<"的人密码=";cin>>pre->psw;Head=pre;Head->next=Head;for(i=1;inum=i+1;cout<<"编号"<>newp->name;cout<<"密码"<>newp->psw;newp->next=Head;pre->next=newp;pre=newp;}}voidJose::outs(){intm,i;NodeType*q=Head
6、,*p;cout<<"输入m值(m>=2)";cin>>m;cout<<"根据m值,开始报数输出:"<next!=q)第13页共13页西华大学数计学院学生上机实践报告{for(i=1;inext;}cout<<"编号为:"<num<<"的人的姓名:"<name<num<<"的人的密码:"<psw<psw;p->next=q->next;deleteq;q=p->next;}cout<<"编号为:"<num<<"的人的姓
7、名:"<name<num<<"的人的密码:"<psw<#includestructElemType//数据元素的类型第13页共13页西华大学数计学院学生上机实
此文档下载收益归作者所有