当前位置:
文档之家› 单链表基本操作实验报告[1]
单链表基本操作实验报告[1]
实验内容及实验结果
请写出具体的实验步骤,并给出相应的实验结果,附上编写的程序及其运行结果截图!!
程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
p->next=q;
p=p->next;
}
printf(L);
return 0;
}
int ListInsert(Linklist &L)
{
Linklist p,s;
int i,j,e;
printf("请输入要插入的元素的位置和值:");
scanf("%d%d",&i,&e);
p=L;
j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j<i-1)
{
printf("i的值不合法!");
return 0;
}
s=(Linklist)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
printf(L);
return 0;
}
int ListDelete(Linklist &L)
p=head->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
void main()
{
Linklist La,Lb;
int i;
printf("1.插入新元素\n");
printf("2.删除新元素\n");
loop:printf("请做出选择:");
scanf("%d",&i);
if(i==1){creat(La);ListInsert(La);}
if(i==2){creat(Lb);ListDelete(Lb);}
printf("是否继续操作,是1,否2:");
scanf("%d",&i);
if(i==1)goto loop;
}
运行结果截图如下:
技术原理:程序=算法+数据结构;首先写出单链表每个操作的算法,再将这些算法有机的连接起来即得到完整的程序。
{
Linklist p,q;
int i,j,e;
printf("请输入要删除元素的位置:");
scanf("%d",&i);
p=L;
j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
{
printf("删除位置不合法!");
return 0;
教师评阅意见
教师签字
签字日期
年月日
实验步骤:1、创建一个空链表;
2、用元素插入法创建链表;
3、编写元素插入的算法;
4、编写元素删除的算法;
5、编写主函数;
6、编译程序;
7、检查并修改错误至编译时无误;
8、执行程序。
实
验
心
得
平时总是眼高手低,只注重理解,忽视了动手操作的重要性,以至于在上级编写程序时错误一个接一个的出现,甚至同一个错误会出现多次;平时只写某个操作的算法,当需要将这些算法放在同一个程序中一起操作时,在连接过程中往往会有些困难;对有些操作的算法,思考的不全面;另外,对书本上的知识点理解的还不够透彻
}
q=p->next;
p->next=q->next;
e=q->data;
free(q);
printf(L);
return 0;
}
void Listsort(Linklist &head,int n)
{
Linklist p,q;
int i,j;
for(i=0;i<n;i++)
{
p=head;
q=p->next;
struct LNode *next;
}LNode,*Linklist;
int printf(Linklist &L)
{
Linklist p;
p=L->next;
if(L->next!=NULL)
do{printf("%4d",p->data);
p=p->next;}
while(p!=NULL);
printf("\n");
数学与计算机科学系实验报告
课程:数据结构地点:实验室时间:来自010年12月7日学生姓名
孙彩玲
班级
计本(2)班
学号
090312259
成绩
组别
无
同组姓名
无
仪器编号
实验项目
单链表实验
指导教师
帅小应
实验目的
掌握单链表的基本操作
实验要求
建立单链表
进行插入操作
进行删除操作
实验环境
硬件:计算机
软件:windowsXP,C
return 0;
}
int creatempty(Linklist &L)
{
L=(Linklist)malloc(sizeof(LNode));
L->next=NULL;
return 0;
}
int creat(Linklist &L)
{
Linklist p,q;
int i,a;
printf("初始化链表\n");
creatempty(L);
p=L;
printf("请输入链表元素个数:");
scanf("%d",&a);
printf("请输入元素值:");
for(i=0;i<a;i++)
{
q=(Linklist)malloc(sizeof(LNode));
scanf("%d",&q->data);
q->next=p->next;
for(j=0;j<n-1;j++)
if(p->next->data>q->next->data)
{
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
p=p->next;
}
}
}
int len(Linklist &head)
{
int i=0;
Linklist p;