求高手指点 用C++编写一个线性表(数组结构)
要求:每个小组成员分别书写一个函数,并存放在一个单独的文件内,主文件为一个单独文件,只能在main函数中去调用小组成员所书写的函数。(即不能将各函数写在main函数所在文件中),各函数通过使用include“***.*”的方式在头文件部分声明,即使用包含命令来调用各函数。主文件名:SqList.cpp,主函数格式:
#include <stdio.h>
#include “***.*” //小组成员1书写的函数所在文件
# include “***.*” //小组成员2书写的函数所在文件
...
include “***.*” //小组成员n书写的函数所在文件
void main( )
{
printf(“提示信息1”);
SqListInit( L ); //注释信息
printf(“提示信息2”);
SqListInsert( L, e); //注释信息
...
printf(“提示信息n”);
SqListDelete (L); //注释信息
}
线性表实验要求:
1、 声明线性表的动态分配顺序存储结构类型 SqList(注:其中ElemType为用户自定义类型)。
2、 编写主函数调用函数的框架
3、 各小组成员分别编写如下函数:
A.创建线性表 —— int CreateSqList ( SqList *L ); (必选函数) (分值:B+)
说明:通过用户输入数据的方式生成线性表,当用户输入字符@时表示结束用户输入。L为线性表类型的指针。 创建成功时,返回1,否则返回0。
B.线性表插入函数 —— int SqListInsert ( SqList * L, int i, ElemType e ) (必选函数)
(分值:A)
说明:在线性表中第i个数据的前面插入数值e,不成功时返回0,否则返回1。
C.线性表删除函数 —— int SqListDelete (SqList * L, int i, ElemType* e ) (必选函数)
(分值:A)
说明:删除线性表中的第i个数据,并将被删除数据的值通过e返回并在主函数中输出,删除不成功时返回0,否则返回1。
D.线性表查找函数 —— int SqListLocate ( SqList L, ElemType e ) (可选函数)
(分值:B)
说明:在线性表中查找值为e的第一个数据,并返回该数据在线性表中的位置,查找不成功时返回-1。
E.线性表排序函数 —— int SqListSort ( SqList *L ) (可选函数)
(分值:A)
说明:对结构体L中的数据成员按照选择排序算法进行排序,并将结果进行输出。
(注:以上函数参数中i的值的取值范围为 i>=0)
注意:因为引用类型可以在VC6.0++中实现,但在函数中不得使用C++中才有的引用类型,要使用纯C语言中的数据类型和函数。