Description
顺序表是数据结构中一种最基本的数据结构,它是用连续存储空间结构实现的线性表。主要包括顺序表操作,阅读顺序表数据结构定义、阅读顺序表的初始化、阅读顺序表的输出、完成插入操作、完成删除操作。
Input
构造一个顺序表,输入数据只有3行,第1行是一个整数n,表示顺序表元素个数;第2行是n个整数,用这n个整数构造顺序表;第3行表示删除的数据元素的位置。
Output
依次输出顺序表中数据元素,每个元素以换行结束;然后输出被删除的数据元素数值;然后输出被删除后的顺序表的所有元素;最后输出被删除后顺序表的长度。
HINT
#include<stdio.h> //若用printf,scanf,getchar,putchar,gets,puts函数需包含该头文件
#include<malloc.h> //用malloc,free,realloc函数需包含该头文件
#define MAXSIZE 100 //设线性表初始分配空间大小
typedef int ElemType; //先设定数据元素的类型为整型
//0:定义顺序表的结构类型
typedef struct{
ElemType *elem;
int length;
}SqList;
//1:初始化顺序表
int InitList_Sq(SqList &L )
{
L.elem=new ElemType[MAXSIZE];
if (!L.elem) return 0;
L.length=0;
return 1;
}
//2:打印顺序表中所有元素
void PrintList(SqList &L)
{
int i;
for(i=0;i<L.length;i++)
printf("%d\n",L.elem[i]);
}
//*****3:在顺序表中第i个位置(i=1~n)插入元素*****
int ListInsert_Sq(SqList &L,int i,ElemType e){
int j;
if (i<1 || i>L.length+1)
return 0;
//--------补充代码--Start------
//--------补充代码--End-------
return 1;
}
//*****4:删除顺序表中第i(i=1~n)个元素,用e返回删除的元素*****
int ListDelete_Sq(SqList &L, int i, ElemType &e){
//--------补充代码--Start------
//--------补充代码--End-------
return 1;
}
int main()
{
//以下代码请认真阅读,切勿做任何修改
SqList La;
int i,n,e;
//初始化顺序表
InitList_Sq(La);
//输入元素个数
scanf("%d",&n);
//依次读取n个数据插入顺序表
for(i=1;i<=n;i++)
{
//输入数据元素
scanf("%d",&e);
//插入顺序表
ListInsert_Sq(La,i,e);
}
//按顺序输出顺序表中元素
PrintList(La);
//----------------------------
//输入要删除元素的位置
scanf("%d",&i);
//执行删除
ListDelete_Sq(La,i,e);
//输出删除后的元素
printf("%d\n",e);
//输出删除后的顺序表的内容
PrintList(La);
printf("%d\n",La.length);
return 0;
}