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


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


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

一.实验目的

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

二.实验内容

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)());
    //自定义的基本操作
    
    
   
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值