欢迎来到天天文库
浏览记录
ID:39575711
大小:70.50 KB
页数:9页
时间:2019-07-06
《实验一 用指针处理链表指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一 用指针处理链表一.实验目的了解链表是一种重要的数据结构和动态进行存储分配的一种结构。学会使用链表进行数据操作。二.实验内容能够编写简单的建立链表、输出链表、链表插入和删除的程序,并进行数据输入、输出、插入和删除操作。三.实验环境需要仪器、设备1.PC机一台,预装Win2K/Win98操作系统及MicrosoftVisualC++6.0程序。四.实验线路及原理根据所给流程图写出建立一个有5名学生数据的单向链表的函数;将链表中各结点的数据集资输出的函数;删除和插入某个结点的函数;最后写出主程序建立链表及执行上述各
2、项操作。开辟一个新结点,并使p1,p2指向它读入一个学生数据给p1所指的结点Head=NULL,n=0当读入的p1->num不是零N=n+1n真=1假Head=p1(把p1所指的结点作为第一个结点)P2->next=p1(把p1所批的结点连接到表尾)P2=p1(p2移到表尾)再开辟一个新结点,使p1再指向它读入一个学生数据给p1所指结点表尾结点的指针变量置NULL9五.实验方法与步骤自己设计后,经由指导教师审查后进行编译链接调试。六.实验报告内容与要求1.画出程序流程图。2.写出具体程序。七.思考1.查找表的工作方式
3、是否与链表操作一致?为什么?实验二 用二叉树实现类属查找表一.实验目的了解查找表是一种重要的数据抽象,是数据库应用和字处理的中心环节,是编译结构、操作系统设计、图形和数值方法以及其他应用的中心。二.实验内容用二叉树实现类属查找表,建立面向对象系统的体系结构和基于对象消息传递的框架。插入一个实体到表中;从表中删去一个实体;确定表中具体实体是否存在;显示有中所有实体。三.实验环境需要仪器、设备仪器:PC机一台。四.实验线路及原理用二叉树实现类属查找表,建立面向对象系统的体系结构和基于对象消息传递的框架。插入一个实体到表中
4、;从表中删去一个实体;确定表中具体实体是否存在;显示有中所有实体。9五.实验方法与步骤1.提供函数lessthan,equal和visittype的全局类型定义。指定lessthan是指向函数类型的指针,该函数返回一个整数并带有两个参数,每个均为一个字符地址。2.定义一个类node,说明类search_table是它的一个友元。它的私有部分包含一个指向左或右子节点的指针,以及指向字符类型的指针。3.指定类search_table中含有:数据root是一个指向类node的对象;数据size保存每个节点对象中数据存储的字
5、节数;数据lt是一个指向类型lessthan函数的指针;eq是一个指向类型equal的函数指针;visit是一个指向类型visittype函数的指针。4.类search_table的实现参见附录。5.编写使用search_table抽象的测试程序。建立三张表,每张表使用一组不同的函数进行相等和不等的测试。第一张表使用last_name作为建表时的关键字;第二张表使用first_name作为建表时的关键字;第三张表使用age作为建表时的关键字。1.测试程序参见附录。六.实验报告内容与要求1.出程序流程图。2.写出具体程
6、序。七.思考1.能否用其它方式实现查找表?为什么?9附录1:/*Cchain.cpp*/#include"Stdlib.h"#include"stdio.h"#include"iostream.h"#defineNULL0#defineLENsizeof(structstudent)structstudent{longnum;intscore;structstudent*next;};intn;structstudent*creat(){structstudent*head;structstudent*p1,*p2;
7、n=0;p1=p2=(structstudent*)malloc(LEN);scanf("%d,%f",&p1->num,&p1->score);head=NULL;while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(structstudent*)malloc(LEN);cin>>p1->num;cin>>p1->score;}p2->next=NULL;return(head);}structstudent*del(structstud
8、ent*head,longnum){structstudent*p1,*p2;if(head==NULL){printf("listnull!");gotoend;}p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num){if(p1=
此文档下载收益归作者所有