.
}
{ }
for(j=i;j<=L.last+1;j++) L.data[j-1]=L.data[j]; L.last--; i--; k=1;
if(k==1) {
printf(\删除后的数据为:\\n\ for(j=0;j<=L.last;j++)
printf(\
}
else printf(\ printf(\
四、实验结果与分析(程序运行结果及其分析)
1.1
1.2
.
.
1.3
1.4
五、实验体会(遇到问题及解决办法,编程后的心得体会)
遇到问题:读取数据元素时,误将==写成=,导致错误。实验过程中,顺序表的赋值没有弄懂,以致输出多个0或者少输出。格式运算符也要正确控制,否则系统会停止工作。
实验体会:通过实验掌握了顺序表的基本操作,如初始化、插入、读取元素、删除等等。并了解到线性表顺序存储结构的特点,即逻辑关系上相邻的两个元素在物理位置上也相邻,然而从另一方面来看,在做插入和删除时需要移动大量元素。本次实验基本完成了实验要求的目的,顺序表的初始化,定义,插入,查找等,更好的了解了顺序表基本操作的算法,以及更直观的了解了数据结构在C语言环境下的体现。
.
.
实验项目名称: 单链表 实验学时: 2 同组学生: ╱ 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
.
.
实验2 单链表
一、实验目的和要求
1、实验目的
掌握单链表的定位、插入、删除等操作。 2、实验要求
(1)注意链表的空间是动态分配的,某结点不用之后要及时进行物理删除,以便释放其存空间。
(2)链表不能实现直接定位,一定注意指针的保存,防止丢失。
二、实验仪器和设备
Visual C++6.0
三、实验容与过程(含程序清单及流程图)
1、必做题
(1) 编写程序建立一个单链表,并逐个输出单链表中所有数据元素。 (2) 在递增有序的单链表中插入一个新结点x,保持单链表的有序性。
解题思路:首先查找插入的位置然后进行插入操作;从第一个结点开始找到第一个大于该新结点值的结点即为插入位置;然后在找到的此结点之前插入新结点;注意保留插入位置之前结点的指针才能完成插入操作。
(3) 编写实现带头结点单链表就地逆置的子函数,并编写主函数测试结果。 2、选做题
已知指针LA和LB分别指向两个无头结点单链表的首元结点。要求编一算法
.
.
实现,从表LA中删除自第i个元素起共len个元素后,将它们插入到表LB中第j个元素之前。 程序清单:
(1)
#include
Linklist creat(int n) {
Linklist head,r,p; int x,i;
head=(Node*)malloc(sizeof(Node)); r=head;
printf(\输入数字:\\n\ for(i=n;i>0;i--) {
scanf(\
.
相关推荐: