实验一 线性表的基本操作

您所在的位置:网站首页 线性表的链式实现实验报告 实验一 线性表的基本操作

实验一 线性表的基本操作

2023-10-07 12:16| 来源: 网络整理| 查看: 265

一、线性结构的顺序表基本操作 实验目的 1.学会定义单链表的结点类型、线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 实验内容 1.编写程序实现顺序表的下列基本操作: (1)初始化顺序表La。 (2)将La置为空表。 (3)销毁La。 (4)在La中插入一个新的元素。 (5)删除La中的某一元素。 (6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。 (7)打印输出La中的元素值。 2.(选做)编写程序完成下面的操作: (1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。 (2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。 (3)假设两个顺序线性表La和Lb分别表示两个集合A和B,利用union_Sq操作实现A=A∪B。 二、单链表基本操作(选做) 实验目的 1. 学会定义单链表的结点类型、线性表的链式存储类型,实现对单链表的一些基本操作和具体的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。 2. 掌握单链表基本操作及两个有序表归并、单链表逆置等操作的实现。 实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对单链表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 实验内容 1.编写程序完成单链表的下列基本操作: (1)初始化单链表La。 (2)在La中插入一个新结点。 (3)删除La中的某一个结点。 (4)在La中查找某结点并返回其位置。 (5)打印输出La中的结点元素值。 2.构造一个单链表L,其头结点指针为head,编写程序实现将L逆置。(即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。)

附:代码 c++下运行:

#include #include //顺序表的定义: #define ListSize 100//表空间大小可根据实际需要而定,这里假设为100 typedef int DataType;//DataType可以是任何相应的数据类型如int ,float,char. typedef struct SeqList { DataType data[ListSize]; //向量data 用于存放表节点 int length; // 当前的表达长度 }SeqList; int main() { struct SeqList L; int i,k,x,n; //函数声明 struct SeqList DeleteList(SeqList L,int i); struct SeqList InitList(struct SeqList L); struct SeqList CreateList(struct SeqList L,int n); struct SeqList InsertList(SeqList L,DataType x,int k); void PrintList(SeqList L); int LocateList(SeqList L,DataType x); //初始化表 L=InitList(L); //建立顺序表 printf("输入表中元素数量n\n"); scanf("%d",&n); L=CreateList(L,n); printf("输入的元素为:\n"); PrintList(L); //查找数据 printf("输入需要查找的数据:\n"); scanf("%d",&x); if(LocateList(L,x)==0) printf("该元素不存在。。。\n"); else{ printf("该元素的位置为:\n"); printf("%d",LocateList(L,x)); } printf("\n"); //插入数据 printf("输入插入的数据 x="); scanf("%d",&x); printf("输入插入的位置 k="); scanf("%d",&k); printf("\n插入 数据前的表:\n");//表插入前后对比性输出 PrintList(L); L=InsertList(L,x,k); printf("\n插入 数据后的表:\n");//表插入前后对比性输出 PrintList(L); //删除数据 printf("输入删除的位置 k="); scanf("%d",&k); printf("\n删除 数据前的表:\n");//表删除前后对比性输出 PrintList(L); L=DeleteList(L,k); printf("\n删除 数据后的表:\n");//表删除前后对比性输出 PrintList(L); return 0; } //初始化顺序表 struct SeqList InitList(struct SeqList L) { L.length=0; return L; } //顺序表的建立 struct SeqList CreateList(struct SeqList L,int n) { int i; printf("请输入%d个元素:\n",n); for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3