您的位置:首页 > 理论基础 > 数据结构算法

数据结构-顺序表(2)实验要求以及顺序表的表示与实现

2017-10-11 21:47 363 查看


----实验要求-------------------------------------------------------------------------------------------

实验一:线性结构及其应用

一.实验目的

掌握线性表的顺序存储结构和基本操作,重点巩固和体会线性表的插入、合并及应用。

二.实验内容

4个班级一起上数据结构课程,期末考试后,需要分别录入各班每个人的成绩,并按成绩降序存储。这个成绩管理系统需要的功能有:

(1)班级成绩录入----线性表的建立

操作1:初始化空表

操作2:插入一个人的成绩

操作3:查找/定位

(2)综合排名---线性表的合并  L1+L2+L3+L4->L

(3)输出-----线性表的遍历 L1;L2:L3:L4:L:

三. 实验要求

1) 分别用顺序表和链表实现成绩管理系统所有的功能;

2) 每个班的成绩分别存在一个线性表中,即一共需要四个线性表;

3) 成绩需要降序存储。

 

----分析与设计-------------------------------------------------------------------------------------------

1.问题分析

        问题要求存储四个班级每个人的学生成绩,并对学生成绩进行操作及输出。即需要使用一种数据结构来存储大量的有位置关系的数据,并能对存储的数据进行操作和输出。

2.设计思想

每个班的学生成绩要使用一个线性表,还需要一个同时存储四个班学生成绩的线性表,总共需要使用五个线性表,可用结构体构建线性表,并用结构体数组存储五个线性表。使用自己编写的函数完成对线性表的各种操作。

----代码-------------------------------------------------------------------------------------------

#include
#include

/*
定义常量
*/
#define LIST_INIT_SIZE 50
#define LIST_INCREMENT 5

/*
定义线性表
*/
typedef struct ElemType
{
int id;
int score;
char name[100];
}ElemType;

typedef struct MyList
{
ElemType *data;
int length;
int listsize;
}MyList;

/*
线性表的操作函数
*/

int InitList(MyList *L);
int DestroyList(MyList *L);
int ClearList(MyList *L);
int ListEmpty(MyList L);
int ListLength(MyList L);
int GetElem(MyList L,int i,ElemType *e);//是否需要使用多重指针?
int LocateElem(MyList L,ElemType e,int (*MyCompare)());
int PriorElem(MyList L,ElemType cur_e,ElemType *pre_e);//same problem
int NextElem(MyList L,ElemType pre_e,ElemType *cur_e);
int ListInsert(MyList *L,int i,ElemType e);
int ListDelete(MyList *L,int i,ElemType *e);
//课本内定义的基本操作
int SortList(MyList *L,int (*MyCompare)());
//自定义的基本操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: