线性表实验报告一、实验的目的要求1、了解线性表的逻辑结构特性,以及这种结构特性在计算机内的两种存储结构。2、掌握线性表的顺序存储结构的定义及其 C 语言实现。3、掌握线性表的链式存储结构——单链表的定义及其 C 语言实现。4、掌握线性表在顺序存储结构即顺序表中的各种基本操作。5、掌握线性表在链式存储结构——单链表中的各种基本操作。6、认真阅读和掌握实验的程序。7、上机运行本程序。8、保存和打印出程序的运行结果,并结合程序进行分析。二、实验的主要内容题目:请编制 C 语言,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;最后在屏幕菜单中选择 0,即可结束程序的运行。三、解题思路分析在链表中插入数据,不需要进行大量的数据移动,只需要找到插入点即可,可以采用后插入的算法,在插入点的后面添加结点。在链表中删除数据,先找到删除点,然后进行指针赋值操作。四、程序清单#include#include#includetypedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode;LNode*L;LNode*creat_L();voidout_L(LNode*L);voidinsert_L(LNode*L,inti,ElemTypee);ElemTypedelete_L(LNode*L,ElemTypee);intlocat_L(LNode*L,ElemTypee);voidmain(){inti,k,loc;ElemTypee,x;charch;do{printf("\n");printf("\n1.建立单链表");printf("\n2.插入元素");printf("\n3.删除元素");printf("\n4.查找元素");printf("\n0.结束程序运行");printf("\n===printf("\n请输入您的选择(1,2,3,4,0)")scanf("%d",&k);switch(k){case1:{L=creat_L();out_L(L);}break;case2:{printf("\n 请输入插入位置:");scanf("%d",&i);printf("\n 请输入要插入元素的值:");scanf("%d",&e);insert_L(L,i,e);out_L(L);}break;case3:{printf("\n 请输入要删除元素的位置:");scanf("%d",&i);x=delete_L(L,i);out_L(L);if(x!=-1){printf("\n 删除的元素为:%d\n",x);printf("删除%d 后的单链表为:\n",x);out_L(L);}elseprintf("\n 要删除的元素不存在!");}break;case4:{printf("\n 请输入要查找的元素值:");scanf("%d",&e);loc=locat_L(L,e);if(loc==-1)printf("\n 为找到指定元素!");elseprintf("\n 已找到,元素位置是%d",loc...