77范文网 - 专业文章范例文档资料分享平台

学生成绩管理系统 - 数据结构上机实验报告Yangtze

来源:网络收集 时间:2019-01-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

华东交通大学 软件学院 上机/实验报告册

专 业____________________________ 班 级____________________________ 姓 名____________________________ 课程名称____________________________ 教 师____________________________ 学 期____________________________

软件学院上机实验报告

备注:学生应根据实验的要求,设计一个实验过程(包括程序代码、各种定义说明),并根据实验的结论及实验过程中出现的情况(错误、异常等)得出的体会。要求学生每人一台计算机,独立完成实验的全过程。

实验题目: 单链表的实现

实验目的: 1.掌握单链表的逻辑结构

2.掌握单链表的存储结构和结构特点 3.掌握单链表基本操作的实现和指针的操作 4.了解单链表基本操作的效率和特点 实验要求: 1.线性表的抽象数据类型

2. 单链表存储结构的C++语言定义

3. 单链表基本操作的实现:⑴初始化⑵销毁⑶创建⑷获取元素⑸插

入⑹删除

4.单链表的使用 5.实验结果 实验内容:

1. 线性表的抽象数据类型

ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,……,an},每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。 Operation InitList(*L): 初始化操作,建立一个空的线性表L。 ListEmpty(L): 若线性表为空,返回ture,否则返回false。 ClearList(*L): 将线性表清空。 GetElem(L,i,*e): 将线性表L中的第i个元素值返回给e。 LocateElem(L,e): 在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。

2. 单链表存储结构的C++定义:

/*线性表的单链表存储结构*/ typedef struct Node {Elemtype data; Struct Node *next; }Node; Node *Linklist; /*定义Linklist*/

3.单链表基本操作的实现:

㈠ 初始化:

InitList(*L)

{L=(LinkList)malloc(sizeof(LinkList)) L->next=NULL return L; } ㈡ 销毁:

/*初始条件:线性表L已存在;操作结果:将L重置为空表*/ Status ClearList (LinkList *L) { LinkList p,q; p=(*L)->next; While (p) {q=p->next; free(p); p=q; }

(*L)->next=NULL; return OK; } ㈢ 创建:

/*随机产生n个元素的值,建立带头结点的单链表L(头插法)*/ Void CreateListHead (LinkList *L,int n) {LinkList p; int I;

srand(time(0));

*L=(LinkList)malloc(sizeof(Node)); (*L)->next=NULL; For(i=0,i

{p=(LinkList)malloc(sizeof(Node)); p->data=rand( )0+1; p->next=(*L)->next; (*L)->next=p; } }

㈣ 获取元素:

/*初始条件:顺序线性表L已存在,1≤i≤ListLength(L)*/ /*操作结果:用e返回L中第i个数据元素的值*/ Status GetElem(LinkList L,int i,ElemType *e) {int j;

LinkList p; p=L->next; j=1;

while(!p==NULL&&jnext; ++j; }

if (!p ||j>i)

return ERROR; *e=p->data; return OK; } ㈤ 插入:

/*初始条件:线性表L已存在,1≤i≤ListLength(L)*/

/*操作结果:在L中第i个位置之前插入新的数据元素e,L长度加1*/ Status ListInsert(LinkList *L,int i,ElemType e) {int j;

LinkList p,s; p=*L j=1;

while(p&&jnext; ++j; }

If (!p ||j>i)

return ERROR;

s=(LinkList)malloc(sizeof(Node)); s->data=e;

s->next=p->next; p->next=s; return OK; } ㈥ 删除:

/*初始条件:线性表L已存在,1≤i≤ListLength(L)*/

/*操作结果:删除L的第i个数据元素,并用e返回其值,L长度减1*/ Status ListDelete (LinkList *L,int i,ElemType *e) {int j;

LinkList p, q; p=*L; j=1;

while (p->next||j>i ) {p=p->next; ++j; }

If (! (p->next) ||j>i ) return ERROR; q=p->next;

p->next=q->next; *e=q->data; Free(q); return OK;

}

4.单链表的应用

本应用为设计了一个学生成绩管理系统 源代码如下:

//简单成绩管理系统。 #include #include #include using namespace std; struct studentstr {

int stuNo;

char name[20];

int score; //这里假设为整型,其实为实数比较妥当。 };

typedef struct link {

struct studentstr Data; struct link * next; }LinkList;

int linkListLen(LinkList * head) //返回链表长度,这样可以很容易计算学生编号。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库学生成绩管理系统 - 数据结构上机实验报告Yangtze在线全文阅读。

学生成绩管理系统 - 数据结构上机实验报告Yangtze.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/444684.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: