好文档 - 专业文书写作范文服务资料分享网站

数据结构实验报告汇总

天下 分享 时间: 加入收藏 我要投稿 点赞

本科生实验报告

实验课程

数据结构

学院名称 专业名称

学生姓名

学生学号

指导教师

实验地点 实验成绩

二〇二〇年六月 二〇二〇年七月

填写说明

1、 适用于本科生所有的实验报告(印制实验报告册除外); 2、 专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求:

① 用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ② 打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③ 具体要求:

题目(二号黑体居中);

摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);

关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);

正文部分采用三级标题;

第1章 ××(小二号黑体居中,段前0.5行)

1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行)

参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一 线性表的应用

一、 实验目的:

1. 掌握线性表的逻辑结果和存储结构特点;

2. 掌握线性表的基本操作,如建立、查找、插入和删除等。

二、 问题描述

创建一个班级学生信息表,包含“学号、姓名、性别、成绩”等信息。具有如下功能:

(1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据学号进行查找,返回此学生的学号和成绩; (4) 给定一个学生信息,插入到表中指定的位置; (5) 删除指定位置的学生记录;

三、数据结构设计(选用的数据元素逻辑结构和存储结构实现形式说明)

(1)逻辑结构设计 :采用的线性结构,主要通过线性表实现各元素之间一对一的关系 (2)存储结构设计 :采用顺序存储结构,顺序存储结构较为方便,直接在空间开

辟一处存储空间存放数据,创建顺序表较简单,但是在插入和删除时效率明显较低。 (3)存储结构形式说明

typedef struct {

char name[50]; char num[50]; int mark;

char genger[50]; } student;

typedef struct {

ElemType* elem; int length; } studentList;

四、算法设计

(1)算法列表(说明各个函数的名称,作用,完成什么操作)

序号 1 名称 结构体 顺序表初始化 信息输入 信息输出 顺序表的查找 顺序表的插入 线性表的删除 菜单 主函数 函数表示符 typedef struct 操作说明 为学生信息创建结构体:包括学生姓名学号,性别,成绩等 创建一个空的顺序表,并分配大小为100的存储空间 输入学生信息:姓名,学号,性别,成绩等 输出线性表中的信息 输入学生学号之后,从表头开始逐个查找符合条件的值,并返回在表中的位置i+1 先将插入位置之后的所有元素向后移一个位置,再将要插入的元素放入,最后表长加1 查找到要删除的元素,表长减1 输出要显示的功能(仅输出,无输入值) 通过switch函数实现上述操作 2 3 4 5 InitList input output LocateElem_Sq 6 InsertElem 7 8 9 DeleteElem menu main (2)各函数间调用关系(画出函数之间调用关系)

1为创建结构体,无调用关系 主函数调用以上所有函数,其他函数之间没有调用关系 InitList input output main LocateElem_Sq InsertElem DeleteElem (3)关键算法描述

Status InitList(studentList* bl) //顺序表的初始化 {

//构造一个空的顺序表L

bl->elem = (ElemType*)malloc(sizeof(ElemType) * MAXSIZE);

if (!bl->elem) exit(OVERFLOW); bl->length = 0; return OK; }

void input(ElemType* e) {

printf(\学生姓名:\); scanf(\, e->name); printf(\学生学号:\); scanf(\, e->num);

printf(\性别:\); scanf(\, &e->genger); printf(\学生成绩:\); scanf(\, &e->mark); printf(\); }

void output(ElemType* e) { }

int LocateElem_Sq(studentList* bl, ElemType e) //顺序表的查找 {

//顺序表的查找 int i;

for (i = 0; i < bl->length; i++)

if (!strcmp(bl->elem[i].name, e.num)) return i + 1; return 0; }

Status InsertElem(studentList* bl, int i, ElemType e) //顺序表的插入 {

//在顺序表L中第i个位置之前插入新的元素e int k;

if (i<1 || i>bl->length + 1) return ERROR;

printf(\学生姓名:%-10s 学生学号:%-10s 性别:%-10s 学生成绩:%-10d\\n\\n\, e->name, e->num, e->genger,e->mark);

//存储分配失败

//空表长度为0

数据结构实验报告汇总

本科生实验报告实验课程数据结构学院名称专业名称学生姓名学生学号指导教师实验地点实验成绩二〇二〇年六月二〇二〇年七月填写说明1、适用于
推荐度:
点击下载文档文档为doc格式
8crla6behk5v45r56fo51lh1d7s0s500988
领取福利

微信扫码领取福利

微信扫码分享