求高手编写一个C++程序 编写一个链表
要求:主文件为一个单独文件,只能在main函数中去调用小组成员所书写的函数。(即不能将各函数写在main函数所在文件中),各函数通过使用include“***.*”的方式在头文件部分声明,即使用包含命令来调用各函数。
主文件名:List.cpp,主函数格式:
#include <stdio.h>
#include “***.*” //小组成员1书写的函数所在文件
# include “***.*” //小组成员2书写的函数所在文件
...
include “***.*” //小组成员n书写的函数所在文件
void main( )
{
printf(“提示信息1”);
ListInit( L ); //注释信息
printf(“提示信息2”);
ListInsert( L, e); //注释信息
...
printf(“提示信息n”);
ListDestory(L); //注释信息
}
链表实验要求:
1、 声明结点类型 LNode
2、 编写主函数调用函数的框架
3、 各小组成员分别编写如下函数:
A. 创建链表 —— intCreateList ( Lnode ** L ); (必选函数) (分值:A+)
说明:通过用户输入数据的方式生成链表,当用户输入字符@时表示结束用户输入。L为链表的头指针。 创建链表成功时,返回1,否则返回0。
B. 结点插入函数 —— int ListInsert ( LNode* L, int i, ElemType e ) (必选函数)
(分值:A)
说明:在链表的第i个结点的前面插入一个结点,并将结点的数据域赋值为e,不成功时返回0,否则返回1。
C. 结点删除函数 —— int ListDelete ( LNode* L, int i, ElemType* e ) (必选函数)
(分值:A)
说明:删除链表的第i个结点,并将结点数据域中的值通过e返回,删除不成功时返回0,否则返回1。
D. 查找函数 —— int ListLocate ( LNode *L, ElemType e ) (可选函数)(分值:B)
说明:在链表中查找结点中数据值为e的第一个结点,并返回该结点在链表中的位置,查找不成功时返回-1。
E. 销毁函数 —— int ListDestory ( LNode** L) (可选函数) (分值:B+)
说明:释放链表的所有结点(含头结点),成功返回1,否则返回0。
注:1)以上函数参数中i的值的取值范围为 i>=0
2)以上链表结构均为含有头结点的链表。
注意:因为引用类型可以在VC6.0++中实现,但在函数中不得使用C++中才有的引用类型,要使用纯C语言中的数据类型和函数。