实验项目名称:
一、实验任务(把题目粘过来)
实现顺序表的基本操作(所有操作均设计函数实现),并在基本操作的基础上实现两个应用。基本操作包括:
1)初始化。
2)批量输入非0数据值。
3)定位查找:输入要找数据的位置(位序)i。如果位置合法,输出该位置上的数据,如果位置非法,输出“位置非法”,查找成功返回值为1,同时带回该位置上的数据,查找失败,返回值为0。
4)按值查找:输入要查找的数据x。如果该数据x存在,输出其所在位置(位序);如果数据x不存在,则输出“数据x不存在!”。
5)按位插入:在指定的位置i插入x值。如果顺序表空间满了,则输出“顺序表空间满,插入失败!”,返回值为-1;如果插入位置非法,则输出“插入位置非法,插入失败!”,返回值为0;插入成功返回值为1,并输出顺序表中的数据。
6)按位删除:删除指定位置i上的数据。如果顺序表空,则输出“顺序表为空表,删除失败!”,返回值为-1;如果删除位置非法,则输出“删除位置非法,删除失败!”,返回值为0;删除成功返回值为1,同时带回删除的数据x,并输出“删除位置i上的数据为x”。
7)输出:输出顺序表中的所有元素,自行设计输出效果,要求清晰,排列整齐。如果顺序表为空表,请输出“顺序表为空表!”。
两个应用包括:
1)求两个集合A和B的并集,设A足够大能存放的下A和B中的所有元素。
2)将两个有序表A和B合并为有序表C。
# include <stdio.h>
# include <stdlib.h>
# include <stdbool.h>
#define MAXSIZE 1024
typedef int elemtype;
typedef struct List
{
int Data[MAXSIZE];
int length;
}list,*List;
List InitList()
{
List L=(List)malloc(sizeof(list));
if(L==NULL){
return NULL;
}
L->length=0;
return L;
}
int GetData(List L,int data)//输入数据
{
if (L->le