循环单链表的实验报告
更新时间: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
“两学一做”学习宣贯材料05-11
试比较简爱与伊丽莎白的人物形象01-04
小学生二年级我最喜欢的老师作文06-13
物理化学习题0110-06
java学生管理系统源码07-10
用百分数解决问题例3教学设计10-25
小城作文1000字06-30
8.19批评与自我批评04-19
2011年国土资源新闻宣传工作要点01-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单链
- 循环
- 实验
- 报告
- 应用写作第一次作业(离线-行政专)
- 备战20136年高考英语 母题精解精析专题22 完形填空(说明文)
- 亲子读书计划
- 艺术班学案复数专题
- 浙江省委直属厅局政要领导简历
- 团委制度上墙内容
- 110kv变电站二次设计部分
- 微分几何与伴随着微分几何的发展
- 苏教版2017-2018年小学语文五年级上册《古诗两首》精选习题第二
- 入门资料:FPGA时序分析基础与时钟约束实例
- 权城中学廉政文化进校园工作总结
- 依法施政全面建设法制政府的工作汇报
- 科技文阅读精练
- wcdma接入问题分析 - 图文
- 中外建筑史 - 图文
- 初三英语阅读理解训练题及答案三
- 固定式起重机项目可行性研究报告(目录) - 图文
- 七年级组长质量分析
- 国风·召南·何彼秾矣 汉英+拼音+注释
- 无刷自控电机软起动器工作原理及结构特点