数据结构课程实验报告.docx

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档 精品文档 PAGE PAGE71 精品文档 PAGE 课程实验报告 课程名称: 数据结构 专业班级: 信息安全1302班 学 号: 姓 名: 指导教师: 报告日期: 2015年5月14日 计算机科学与技术学院 目 录 1 课程实验概述 1 2 实验一基于顺序结构的线性表实现 2 2.1 问题描述 2 2.2 系统设计 2 2.3 系统实现 2 2.4 效率分析 11 3 实验二基于链式结构的线性表实现 12 3.1 问题描述 12 3.2 系统设计 12 3.3 系统实现 12 3.4 效率分析 20 4 实验三基于二叉链表的二叉树实现 22 4.1 问题描述 22 4.2 系统设计 22 4.3 系统实现 22 4.4 效率分析 32 5 实验总结与评价 35 6 附录程序代码 37 课程实验概述 本次课程实验总共分为三个实验:基于顺序结构的线性表实现;基于链式结构的线性表实现;基于二叉链表的二叉树实现。三个实验均以C语言实现并要求提供能够实现功能的演示系统,物理结构与元素类型自定。 通过课程实验加深对线性表以及二叉树数据结构和算法的理解。在编程过程中通过亲自实践形成良好的代码风格,在调试程序过程中能够发现很多C语言基础问题以及固有的错误观点,进一步提升编程能力。实验报告中也包括很多有益的东西,比如:基于数据结构的系统划分方法;递归算法设计方法和技巧;对于 有天然递归属性的问题如何构造非递归算法。 对实验报告格式的严格要求也会为 今后撰写论文打下坚实的基础。另外更重要的一点是,从开始设计、编程、到撰 写报告的整个过程,是对分析问题、解决问题的综合能力的锻炼。 虽然本次的三 个实验均是比较经典的数据结构,要实现其功能不是非常难,但是依然需要细心、 耐心,尤其是在调试程序和撰写报告工程中。 与此同时,和同学的交流以及老师 的交流也是非常重要的一个环节。在交流过程中能够发现自身的问题、开阔思路。 当然,交流并不意味着抄袭。独立完成整个课程实验才能有所收获。 总之,本次实验旨在巩固课堂所学的知识,提高编程能力,提高分析解决问题的能力。 2实验一 基于顺序结构的线性表实现 2.1问题描述 线性表有两类存储结构:顺序结构和链式结构。实验一将通过顺序存储结构 实现线性表的基本操作。 要求: 提供一个实现功能的演示系统 具体物理结构和数据元素类型自行选定 2.2系统设计 1)背景 运行环境:Windows 程序语言:C语言 开发环境:CodeBlocks 2)功能描述 基于顺序存储结构,实现线性表的基本的,常见的运算:表的构造、表的销 毁、表的重置、空表的查看、获取表的长度、获取数据元素、获取前驱、后继、 查找数据元素、插入数据元素、删除数据元素及输出线性表。 2.3系统实现 1)顺序表的动态分配存储结构以及部分全程量 #defineLIST_INIT_SIZE100//#defineLISTINCREMENT10  //  线性表存储空间的初始分配量 线性表存储空间的分配增量 typedefstruct{ int*elem; intlength; intlistsize;  // // //  存储空间基址 表长 分配的存储容量 }SqList; 2)相关函数说明以及基本算法思想 statusIntiaList(SqList*L); statusDestroyList(SqList*L); statusClearList(SqList*L); statusListEmpty(SqListL); intListLength(SqListL); statusGetElem(SqListL,inti,ElemType*e); statusLocateElem(SqListL,ElemTypee); statusPriorElem(SqListL,ElemTypecur,ElemType*pre_e);statusNextElem(SqListL,ElemTypecur,ElemType*next_e);statusListInsert(SqList*L,inti,ElemTypee);statusListDelete(SqList*L,inti,ElemType*e); statusListTrabverse(SqListL); intInitList(SqList*L) 功能描述:构造一个空线性表L。 算法思想:申请存储数据元素空间,然后表长置0,存储容量置为 LIST_INIT_SIZE statusDestroylist(SqList*L) 功能描述:销毁已存在的线性表L。 算法思想:存储空间基址置空,长度置0,当前存储容量置0statusClearList(SqList*L) 功能描述:重置已存在的线性表L。 算法思想

文档评论(0)

155****2478 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档