怎么这道关于顺序表的难题怎么做?求指点
一、实验目的1.掌握顺序表的存储结构
2.验证顺序表及其基本操作的实现
3.理解算法与程序的关系,能够将顺序表算法转换为对应的程序
二、实验内容
1.初始化顺序表
2.在顺序表的第i位插入元素
3.删除顺序表的第i个元素
4.输出顺序表
5.判断顺序表是否为空
6.判断顺序表是否满
7.求顺序表第i个元素的值
8.查找值为x的元素
三、算法设计
用结构体来描述顺序表,结构体中包括表的大小、存放数据的数组、表的最大容量三个数据属性。为简单起见,本实验设定线性表的数据元素为int型。
结构体定义如下:
typedef int datatype;
typedef struct {
datatype *data;
int size;
int maxsize
} SqList;
要求实现顺序表的初始化、插入、删除、判空、判满、求值、查找、输出等操作。
四、程序实现
程序的部分代码如下,请将未完成的部分编写完整并在计算机上运行。
#include <stdio.h>
#include <malloc.h>
#define INIT_SIZE 100
typedef int dataType;
typedef struct {
dataType *data;
int size;
int maxsize
} SqList;
//初始化顺序表
void Initlist(SqList *l) {
l->data = (dataType *) malloc(INIT_SIZE * sizeof(dataType));
l->size = 0;
l->maxsize = INIT_SIZE
}
//在顺序表l的第k个位置插入元素x
void Insert(SqList *l, int k, dataType x) {
}
//删除顺序表l的第k个元素
void Delete(SqList *l, int k) {
}
//判断顺序表是否为空
int Empty(SqList *l) {
}
//判断顺序表是否满
int Full(SqList *l) {
}
//求顺序表l中第i个元素的值
dataType GetData(SqList *l, int i) {
}
//在顺序表中查找值为x的元素
int Locate(SqList *l, dataType x) {
}
//输出顺序表
void Print(SqList *l) {
}
int main() {
SqList list, *pList = &list;
InitList(pList);
Insert(pList, 1, 10);
Insert(pList, 1, 20);
Delete(pList, 2);
Insert(pList, 1, 30);
Insert(pList, 1,40);
Print(pList);
Printf(“%d”, GetData(pList, 2));
}