一、 实验目的
1、掌握线性表的逻辑结构
2、熟练掌握线性表的链式存储结构定义及基本操作
3、理解循环链表和双链表的特点和基本运算
4、加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力
二、 实验结果
1、演示程序运行结果
2、分析调试过程中出现的现象
3、总结单链表基本操作的特点
4、分析算法的时间复杂度
三、 实验收获
1、掌握单链表的定义及基本操作
2、掌握数据结构程序的编写方法
四、实验内容
编写程序,实现单链表的创建、插入和删除等基本操作算法。
(1) 用逆序(头插法)创建带头结点的单链表,并输出单链表中的各元素值。
*(2) 输出单链表的长度。
(3) 查找值为给定值的元素,如果找到返回其位序,否则返回0
(4) 在单链表的特定位置插入任意元素并输出单链表中的各元素值。
(5) 在单链表的特定位置删除任意元素并输出单链表中的各元素值。
*(6) 销毁单链表。
*(7) 实现单链表的就地逆置。
*(8) 求单链表中的最大值和最小值。
温馨提示:带*的是选作内容,完成的同学A+。
#include<stdio.h>
#include<malloc.h>
#define error 0
#define ok 1
typedef struct LNode
{
int data;
int length;
struct LNode *next;
}LNode,*p;
p increatelist();
int ListInsert(p);
int LocateElem(p,int);
int ListDelete(p,int);
void DestroyList(p);
p revear(p);
int Maxmin(p);
int main()
{
p top;
top=(p)(malloc(sizeof(LNode)));
int e;
int i;
top=increatelist();
ListInsert(top);
printf("请输入要查找的元素值");
scanf("%d",&e);
LocateElem(top,e);
printf("