实验要求:根据已知两个文件内容,用c语言实现顺序表和链表的操作。
一.顺序表操作
1.Linearlist1.h头文件
//定义学生记录
struct student {
char name[10]; //姓名
short grade; //分数
};
//定义ElemType为student类型
typedef student ElemType;
//定义线性表类
struct LinearList
{
ElemType* list; //存顺序表元素
int size; //存顺序表长度
int MaxSize; //存list数组长度
};
//初始化顺序表
initialLinearList(int ms);
//遍历顺序表
void TraverList();
//得到顺序表中指定下标位置的元素
ElemType GetElemList(int pos);
//从顺序表中查找元素
int FindList(ElemType item);
//更新顺序表中的给定元素
int UpdateList(ElemType item);
//向顺序表插入元素
bool InsertList(ElemType item, int mark);
//从顺序表中删除元素
bool DeleteList(ElemType item);
//对顺序表进行有序输出
void OrderOutputList(int mark); /*mark的值决定排序是从大到小还是从小到大*/
二.单链表操作
2.linklist1.h头文件
//定义ElemType为int
typedef int ElemType;
//单链表中结点的类型
struct LNode {
ElemType data; //值域
LNode* next; //指针域
};
//初始化单链表
void InitList(LNode* HL);
//清空单链表
void ClearList(LNode* HL);
//求单链表长度
int ListSize(LNode HL);
//检查单链表是否为空
int ListEmpty(LNode* HL);
//返回单链表中指定序号的结点值
ElemType GetElem(LNode* HL, int pos);
//遍历单链表
void TraverseList(LNode* HL);
//从单链表中查找元素
int FindList(LNode* HL, ElemType item);
//更新单链表中的给定元素
int UpdateList(LNode* HL, ElemType item);
//向单链表插入元素
void InsertList(LNode* HL, ElemType item, int mark);
//从单链表中删除元素
int DeleteList(LNode* HL, ElemType item, int mark);
//对单链表进行有序输出
void OrderOutputList(LNode* HL, int mark); /*mark的值决定排序是从大到小还是从小到大*/
三、线性表的定义如下,请实现单链表其创建、插入节点、删除节点、遍历、获取某个节点内容的操作。(提交)
/* 出生日期类型定义 */
typedef struct {
char year[5]; /* 年:用字符型表示,宽度为4个字符 */
char month[3]; /* 月:字符型,宽度为 2 */
char date[3]; /* 日:字符型,宽度为 2 */
}BirthDate;
/* 节点类型定义 */
typedef struct {
char number[7]; /* 学号:字符型,宽度为6 */
char name[9]; /* 姓名:字符型,宽度为8 */
BirthDate birthdate; /* 出生日期:构造类型,由该类型的宽度确定 */
int results; /* 成绩:整型,宽度由 “程序设计C语言工具软件”决定 */ (此项可选)
} ElemType;
/*线性表的定义*/
struct list
{
ElemType *elem;
int length;
};
typedef struct list Sqlist;
备注:
第一步:实验给出了子函数,写出整个结构
第二步:假设这些子函数已经可以实现,用这些功能构成一个目标函数
7 点前就要交了 ,今天 ,
帮帮我