线性表的基本操作及应用实验(单链表的逆置)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验环境
Windows XP
实验目的与要求:
实验总结: 实践才能出真知,在通过了上机操作后,才发现了许多在平时上理论课的没有想到的方方面面,编写 程序是发现很多语法的错误,以及很多英语单词的记不熟,记错,程序函数错用等等,我想需要在以 后多多练习,才能逐步解决这些问题。 签名: 2013 年 11 月 14 日 要求学生深入了解链表和顺序结构的特性,巩固对这两种结构方法的掌握,并能解决一定的 实际问题。
while(i != -1) { p = (L *)malloc(sizeof(L)); p->data = i; if(head == NULL) q = head = p; else q->next = p; q = p;
//*********** 学号 *********** #include <stdio.h> #include <stdlib.h> typedef struct L { int data; struct L *next; } L; //创建链表 L *CreatList(void) { int i; L *head, *p, *q; head = NULL; printf("请输入您要输入的数据(输入-1 结束):\n"); scanf("%d", &i); } }
实验内容:
1.定义数据类型。 2.实现顺序表和链表的生成函数。
评语与成绩:
3.实现线性表的基本操作。 4. 利用链表的基本操作实现单链表的就地逆置。
ቤተ መጻሕፍቲ ባይዱ
教师签名: 年
月
日
实验步骤: (算法描述、源程序、操作步骤和方法) //***********单链表的逆置*********** //***********班级*********** //********** 姓名 ***********
head = CreatList(); printf("链表逆置前的数据:\n"); PrintList(head); head = ReverseList(head); printf("链表逆置后的数据:\n"); PrintList(head); return 0;
scanf("%d", &i);
p->next = NULL; return head;
//链表的逆置 L *ReverseList(L *head) { L *p, *q, *r; p = head; q=r=NULL; while(p)
{ q = p->next; p->next = r; r = p;p = q; } return r; } //输出链表 void PrintList(L *head) { L *p; p = head; while(p) { printf("%d\n", p->data); p = p->next; } } int main(void) { L *head; }
测试过程: (实验中出现的问题、错误、解决方法) 1、问题:程序调试时,出现错误提示; 解决方法:检查程序,寻找错误; 2、问题:忘了输入一些必要的符号 解决问题:找出漏输入的符号位置并加上
洛阳师范学院信息技术学院 软件实验报告
专业:_____电子商务_____课程:_______数据结构________ 学号:__姓名:__ __班级:___ _____ 实验名称 实验类型 验证型 线性表的基本操作及应用实验 实验时间 2013.11.14