循环单链表的实验报告
更新时间:2024-04-20 02:49:01 阅读量: 综合文库 文档下载
《数据结构》实验报告
1、实验名称:设计循环单链表 2、实验日期: 2011-3-4 3、基本要求:
1)循环单链表的操作,包括初始化、求数据元素个数、插入、删
除、取数据元素;
2)设计一个测试主函数实际运行验证所设计循环单链表的正确性。
4、测试数据:
依次输入1,2,3,4,5,6,7,8,9,10,删除5,再依次输出
数据元素。
5、算法思想或算法步骤:
主函数主要是在带头结点的循环单链表中删除第i个结点,其主
要思想是在循环单链表中寻找到第i-1个结点并由指针p指示,然后让指针s指向a[i]结点,并把数据元素a[i]的值赋给x,最后把a[i]结点脱链,并动态释放a[i]结点的存储空间。
6、模块划分:
1)头文件LinList.h。头文件LinList.h中包括:结点结构体定
义、初始化操作、求当前数据个数、插入一个结点操作、删除一个结点操作以及取一个数据元素操作;
2)实现文件xhdlb.cpp。包含主函数void main(void),其功能是测试所设计的循环单链表的正确性。
7、数据结构:
链表中的结点的结构体定义如下:
typedef struct Node {
DataType data; struct Node *next; }SLNode;
8、源程序:
源程序存放在两个文件中,即头文件LinList.h和实现文件xhdlb.cpp。 //头文件LinList.h typedef struct Node {
DataType data; struct Node *next; }SLNode;
void ListInitiate(SLNode **head) //初始化 {
*head=(SLNode *)malloc(sizeof(SLNode)); //申请头结点,由head指示其地址 (*head)->next=*head; }
int ListLength(SLNode *head) {
SLNode *p=head; //p指向头指针 int size=0; //size初始值为0 while(p->next!=head) //循环计数 {
p=p->next; size++; }
return size; }
int ListInsert(SLNode *head,int i,DataType x)
//在带头结点的循环单链表head的第i(0<=i<=size)个结点前插//入一个存放数据元素x的结点。插入成功返回1;失败则返回0 {
SLNode *p,*q; int j; p=head; j=-1;
while(p->next!=head&&j //最终让指针p指向第i-1个结点 { p=p->next; j++; } if(j!=i-1) { printf(\插入位置参数错!\ return 0; } q=(SLNode *)malloc(sizeof(SLNode)); //生成新结点 q->data=x; //新结点数据域赋值 q->next=p->next; p->next=q; return 1; } int ListDelete(SLNode *head,int i,DataType *x) //删除带头结点循环单链表head的第i(0<=i<=size-1)个结点被删//除结点的数据域值由x带回。删除成功则返回1;失败则返回0。 { SLNode *p,*s; int j; p=head; j=-1; while(p->next!=head&&p->next->next!=NULL&&j p=p->next; j++; } if(j!=i-1) { printf(\删除位置参数错!\ return 0; } s=p->next; //指针s指向a[i]结点 *x=s->data; //把指针s所指结点的数据域值赋予x p->next=p->next->next; //删除 free(s); //释放指针s所指结点的内存空间 return 1; } int ListGet(SLNode *head,int i,DataType *x) { SLNode *p; int j; p=head;
正在阅读:
循环单链表的实验报告04-20
Linux VSFTP服务器详细配置08-25
夫妻协议书06-04
TRS帮助文档网站集群 - 图文01-03
综合行政执法局2022年度工作总结及度工作计划优秀参考04-26
房屋装修合同(房主有利版)03-24
大学生兼职情况调查表08-24
绵竹年画制作技艺10-30
开学第一课安全教育教案08-01
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 单链
- 循环
- 实验
- 报告
- 应用写作第一次作业(离线-行政专)
- 备战20136年高考英语 母题精解精析专题22 完形填空(说明文)
- 亲子读书计划
- 艺术班学案复数专题
- 浙江省委直属厅局政要领导简历
- 团委制度上墙内容
- 110kv变电站二次设计部分
- 微分几何与伴随着微分几何的发展
- 苏教版2017-2018年小学语文五年级上册《古诗两首》精选习题第二
- 入门资料:FPGA时序分析基础与时钟约束实例
- 权城中学廉政文化进校园工作总结
- 依法施政全面建设法制政府的工作汇报
- 科技文阅读精练
- wcdma接入问题分析 - 图文
- 中外建筑史 - 图文
- 初三英语阅读理解训练题及答案三
- 固定式起重机项目可行性研究报告(目录) - 图文
- 七年级组长质量分析
- 国风·召南·何彼秾矣 汉英+拼音+注释
- 无刷自控电机软起动器工作原理及结构特点