山东科技大学 数据结构实训报告

上传人:第*** 文档编号:78869925 上传时间:2019-02-15 格式:DOC 页数:33 大小:829.01KB
返回 下载 相关 举报
山东科技大学    数据结构实训报告_第1页
第1页 / 共33页
山东科技大学    数据结构实训报告_第2页
第2页 / 共33页
山东科技大学    数据结构实训报告_第3页
第3页 / 共33页
山东科技大学    数据结构实训报告_第4页
第4页 / 共33页
山东科技大学    数据结构实训报告_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《山东科技大学 数据结构实训报告》由会员分享,可在线阅读,更多相关《山东科技大学 数据结构实训报告(33页珍藏版)》请在金锄头文库上搜索。

1、课程实训说明书课程:数据结构实训 题目:顺序表、链表与二叉树院 系: 信息工程系 专业班级: 学 号: 学生姓名: 指导教师: 2015年7月21日目录1.1实训内容和基本要求31.2设计题目及其运行环境31.3数据结构及算法思想的设计4 一顺序表代码及其运行结果及分析4二链表源代码及其运行结果及结果分析15(1)主函数代码及其运行结果(2)输入功能及结果代码(3)插入功能代码及其运行结果(4)删除功能代码及其运行结果(5)查找函数代码及其运行结果(6)输出函数代码及其运行结果(7)计数函数代码及其运行结果(8)排序函数代码及其运行结果(9)逆置函数代码及其运行结果三二叉树源代码及其运行结果及

2、结果分析23(1)主函数代码及其运行结果(2)创建二叉树函数代码及其运行结果(4)求树的结点个数及其运算结果(5)求树的结点度为一的结点个数(6)求树的叶子个数代码及其运行结果(7)先序遍历二叉树及其运行结果(8)中序遍历二叉树及其运行结果(9)后序遍历二叉树及其运行结果四实训总结32五参考文献331.1实训内容和基本要求这次的实训是以面向应用,以解决实际问题为主。老师给的题目基本都是我们在课堂上接触过的,实训的要求是通过上机练习,理解有关数据结构的基本概念、不同数据类型的存储和基本操作的算法实现,理解数据类型的逻辑结构及物理存储结构, 通过自己设计,编程、调试、测试、能够基本掌握在不同存储结

3、构下的算法实现及算法优化,树立并培养系统规范开发的理念。实训中我们要将课本上的理论知识运用到实际操作中,真正做到学以致用。1.2设计题目及其运行环境课程设计题一:顺序表的基本操作一、 设计目的 2掌握线性表在顺序结构上的基本操作。 二、设计内容和要求 利用顺序表的插入运算建立线性链表,然后实现查找、插入、删除、计数、输出、排序、逆置等运算(查找、插入、删除、查找、计数、输出、排序、逆置要单独写成函数),并能在屏幕上输出操作前后的结果。课程设计题二:链表的基本操作一、 设计目的 1掌握线性表的在链式结构实现。 2掌握线性表在链式结构上的基本操作。 二、设计内容和要求 利用链表的插入运算建立线性链

4、表,然后实现链表的查找、插入、删除、计数、输出、排序、逆置等运算(查找、插入、删除、查找、计数、输出、排序、逆置要单独写成函数),并能在屏幕上输出操作前后的结果。 课程设计题三:二叉树的基本操作一、 设计目的1掌握二叉树的概念和性质2. 掌握任意二叉树存储结构。3掌握任意二叉树的基本操作。二、设计内容和要求1.对任意给定的二叉树(顶点数自定)建立它的二叉链表存储结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。2 求二叉树高度、结点数、度为1的结点数和叶子结点数。运行环境首先需要一台PC机,Windows XP系统下

5、,其次程序在visual C+6.0的编译环境中进行,界面将通过屏幕的输出显示功能选项。通过键盘输入完成相应操作。程序主界面是一个文本方式的菜单,通过键盘相应选择操作指令。1.3 数据结构及算法思想的设计 首先可以把需要实现的功能分别写成一个个子函数,然后在主函数里面调用这些子函数,此外还需编写一个菜单子函数,在主函数里面最先调用菜单函数实现在运行界面时首先显示主菜单,根据菜单提示完成你想要执行的操作。链表的各种功能,例如创建,输出,查找,插入,删除,计数,排序;对于二叉树的各种功能,例如创建,先序,中序,后序三种遍历,高度,结点数,叶子结点数等.对于二叉树的遍历,是运用的非递归的思想,求高度

6、,结点数,叶子结点数等方法和链表一样,都是先建立子函数,再进行调用。1 顺序表代码及其运行结果及结果分析#include#include#define OK 1#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int Status;typedef int ElemType;/-线性表的动态分配顺序存储结构-typedef structElemType *elem; /数组指针elem指线性表的基地址int length; /当前长度int listsize;Sq

7、List;/-顺序表的函数调用部分- Status NiZhi(SqList &L,int i); Status Sort(SqList &L,int i); Status Count(SqList &L,int i); Status SearchElem(SqList &L,int i); Status ListDelete(SqList &L,int i,ElemType e);Status InitList_Sq(SqList &L); Status Build(SqList &L); Status OutPut(SqList &L) ; Status ListInsert_Sq(SqL

8、ist &L,int i,ElemType e);/-主函数部分-int main() SqList L;int a,i; printf(-【请先建立顺序表】-n); InitList_Sq(L); Build(L); for(i=0;iLIST_INIT_SIZE)L.elem=(ElemType * )realloc(L.elem,(n+LISTINCREMENT) *sizeof(ElemType);if(!L.elem) exit(OVERFLOW);L.listsize=n+LISTINCREMENT;for(i=0;in;i+) scanf(%d,&L.elemi);L.length=n;return OK;/-查找-Status SearchElem(SqList &L,int i) int b; printf(请选择查找方式:n); printf(按位置查找元素请选【1】n); printf(按元素查找

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

当前位置:首页 > 高等教育 > 大学课件

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