基于线性表的图书信息管理实验报告1

上传人:cjc****537 文档编号:35583707 上传时间:2018-03-17 格式:DOC 页数:7 大小:775KB
返回 下载 相关 举报
基于线性表的图书信息管理实验报告1_第1页
第1页 / 共7页
基于线性表的图书信息管理实验报告1_第2页
第2页 / 共7页
基于线性表的图书信息管理实验报告1_第3页
第3页 / 共7页
基于线性表的图书信息管理实验报告1_第4页
第4页 / 共7页
基于线性表的图书信息管理实验报告1_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于线性表的图书信息管理实验报告1》由会员分享,可在线阅读,更多相关《基于线性表的图书信息管理实验报告1(7页珍藏版)》请在金锄头文库上搜索。

1、北北 京京 林林 业业 大大 学学13 学年学年14 学年第学年第 1 学期学期 数据结构 C 实验报告书实验报告书专业: 电子信息科学与技术 班级: 电子 131 姓名: 潘林 学号: 131114119 实验地点: 北林学研 N09 任课教师: 孟伟 实验题目: 基于线性基于线性表的图书信息管理的图书信息管理 实验环境: Visual C+ 实验目的:1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。(一)实现方法1. 所用数据结构的定义及其相关说明(相关结构体或类的定义及其含义)/定义图书表 typedef struct int no; /书号 char na

2、me20; /书名 int price; /书价 Book;/单链表的建立 typedef struct LNode Book data; /数据域 struct LNode *next; /指针域 LNode,*LinkList;2.自定义函数的名称及其功能说明 void creatlist_L(LinkList /根据指定图书个数,逐个输入图书信息int Getlem_L(LinkList L,int i, int /根据指定的位置可返回相应的 图书信息(书号,书名,定价)void LocateElem_L(LinkList L, string name); /根据书名进行查找,返回此书

3、的书号和定价void ListInsert_L(LinkList / 插入到表中指定的位置void ListDelete_L(LinkList / 删除指定位置的图书记录void Number(LinkList L); /计数void Limbo(LinkList L,int option) ; /选择功能void Function(LinkList L); /友好的提示3.主要功能算法的时间复杂度(2)链表函数名称时间复杂度 void LocateElem_L(LinkList L)O(n) void Number(LinkList L) void Limbo(LinkList L,int

4、option) O(n) O(n) void creatlist_L(LinkList &L, int n)O(n) void Function(LinkList L)O(n) int Getlem_L(LinkList L,int i, int &e)O(n) void ListInsert_L(LinkList &L,int i)O(n) void ListDelete_L(LinkList &L,int d)O(n)4. 实验任务书中要求画的流程图 (1)链表插入的流程图开始输入标志是 否为一判断链表是 否已满标志为1标志不为1先输入链表数 据提示并返回调 用处链表已满输入要插入的 位置

5、i新建指针p,p 指向链表的头 结点,定义整 数j为0p不为空且j 小于i-1p指向下一个节 点,j加1是p为空或者j 大于i-1否是提示错误并返 回新建Lnode型空 间赋给s否输入节点内信 息s下一个节点指 向p的下一个节 点,p的下一个 节点指向s将数据重新协 会book.txt结束(二)实验结果 粘贴程序的实际运行测试结果并加以文字说明(1) 根据指定图书个数,逐个输入图书信息;(2) 根据书名进行查找,返回此书的书号和定价;(3) 根据指定的位置可返回相应的图书信息(书号,书名,定价) ;(4) 给定一个图书信息,插入到表中指定的位置(5) 删除指定位置的图书记录;(6) 统计表中图

6、书个数。(三)结论分析 1. 问题与解决方法 1)在实现链表 int Getlem_L(LinkList L)时,思路有误区,首先该函数实现“按序 号查找”功能,我没有搞清应该命令书号(书的位置)还是命令书的名字来执行该函数, 后来我选择通过命令其输入书的位置来查找书。 2)最普遍的问题是虽然学会了算法,但是我的语法基础不扎实经常出现错误,之后通 过与同学、老师交流慢慢了解 C+的语句用法。 3)在实现 void LinstDelete_L 函数时,由于未意识到删除结点前应该储存结点,导 致算法出错。最后查找书时,发现结点需先用一个已定义的结点来储存该结点地址,再使 上一个结点指针指向该结点指针域。2. 收获和体会 本次实验收获非常大!由于大一厌恶编程,尚未适应电子学科,我的 C 语言和 C+基 础差。调节心态后,认真听讲了数据结构 C,学习很多算法,发现其算法的逻辑可以应用 在生活各个方面,用处很大!最重要的是操控电脑编程成就感很大!以上是我的感性认识。通过该实验我学会了线性表链的操作,更加深刻认识线性表的用法,同时也对数据的 存储结构有了更深刻的认识。 3. 尚存在的问题格式不是很美观。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号