第1关:用数组初始化
本关任务:编写用数组初始化顺序表的函数
相关知识
编程要求
在initarr.cpp文件中编写相关函数
1、初始化顺序表:
Status seqListInitFromArray(seqList &L, ElemType a[], int n);
参数说明:seqList &L 待初始化的顺序表L
ElemType a[] 用来初始化顺序表的数组
int n 数组的大小
返回值类型:Status
返回初始化是否成功。
注意:如果初始化所需空间n大于MAXSIZE,返回OVERFLOW
2、输出顺序表
void seqListPrint(seqList &L);
在一行上依次输出顺序表元素,以空格分开,最后一个元素后没有空格
测试说明
平台会对你编写的代码进行测试:
测试输入:
4
1 2 3 4
预期输出:
1 2 3 4
解题思路
阅读测试主函数,了解任务
初始化:判断空间;分配新空间;赋值;设置长度;返回
用于测试的主函数如下
#include <stdio.h>
#include <iostream>
#include "seqlist.h"
using namespace std;
int main()
{
seqList L;
ElemType e[10];
int n;
scanf("%d",&n);
for (int i = 0; i < n; i++)
{
scanf("%d",&e[i]);
}
seqListInitFromArray(L,e,n);
seqListPrint(L);
return 0;
}
头文件:
#include <stdlib.h>
#define MAXSIZE 100 // 空间最大分配量
#define OVERFLOW -1
#define OK 0
#define ERROR -2
using namespace std;
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length; //当前数据的实际长度(有多少数据)
} seqList;
Status seqListInit(seqList &L);
//用数组a来初始化L
Status seqListInitFromArray(seqList &L, ElemType a[], int n);
void seqListPrint(seqList &L);
我的代码:
运行结果: