当前位置:文档之家› 数据结构实验教学大纲(教育技术)

数据结构实验教学大纲(教育技术)

数据结构实验教学大纲(教育技术)
数据结构实验教学大纲(教育技术)

《数据结构》实验教学大纲

课程总学时:64+32学分:5

实验学时:32 实验个数:实验学分: 1

课程性质:必做适用专业:计算机科学与技术、软件工程、网络工程

教材及参考书:

数据结构(C语言版),严蔚敏吴伟民,清华大学出版社,2002年9月第1版;

数据结构题集(C语言版)实习题部分,清华大学出版社;

数据结构实验教程,王玲刘芳贺春林等,四川大学出版社,2002年10月,

大纲执笔人:刘芳大纲审定人:

一、实验课的性质与任务

计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于计算机程序设计知识的初学者,理解和掌握其中的原理就显得较为困难。

《数据结构》实验课程着眼于原理和应用的结合点,使读者学会如何将书上学到的知识用于解决实际问题,培养软件工作需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时练习较偏重于如何编写功能单一的“小”算法,而实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。此外,还有很重要的一点是:机器是比任何老师更严厉的检查者。

训练的重点在于基本的数据结构,而不是强调面面俱到。各实习单元与教科书的各章只具有粗略的对应关系,一个实习题常常涉及到几部分教学内容。

二、实验课程目的与要求

1.实验目的

根据《数据结构》课程的任务与要求,帮助学生拓宽知识面。并达到以下教学要求:

1)学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当

的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分

析的技术;掌握各种基本数据结构的逻辑结构和存储结构及相应算法。

2)本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清

楚、正确易读,符合软件过程的规范,从而培养学生的数据抽象能力;

3)通过若干数据结构应用实例,引导学生学习数据类型的使用,为今后学习面向

对象的程序做一些铺垫。

2.实验要求

1)熟悉各种基本数据结构的定义,性质和特点,初步掌握算法分析的基本技巧以

及如何根据实际问题设计一个有效的算法。

2)会书写类C语言的算法,并将算法转变为程序实现。

3)正确理解各种数据结构的逻辑特性和存储表示和基本操作的算法实现,有较强

的逻辑分析能力。

4)针对问题的不同选择合适的数据结构,提高算法设计的能力和动手实验的技

能。

数据结构实验课程(课程编号)

序号实

实验名称

实验类型

内容提要

1 抽象数据

类型的表

示与实现

2 √√√

抽象数据类型的表

示与实现

2 线性表实

6 √√√

线性表的存储实现

及有关应用

3 栈和队列

实验8

√√

栈和队列的基本操

作及其实现,以及典

型应用举例

4 树和二叉

树实验

6 √√

树的两种种存储结

构,及各种操作的算

法实现(建立、遍历、

线索化、最优二叉

树)

5 图及其应

用实验

6 √√

图的两种基本存储

结构,及各种操作的

算法实现(建立、遍

历)

6 查找和排

序实验

4 √√√

一种基本的查找和

排序算法及其实现

分析

实验一抽象数据类型的表示与实现

(验证性实验 2 学时)

1.目的要求:

1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;

2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组)。

3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,

并结合程序进行分析。

2.实验内容:

1)编程实现抽象数据类型三元组的定义、存储、基本操作(最大值、最小值、平均值等的求解),并设计一个主菜单完成各个功能的调用。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

实验二线性表实验

(验证性实验 6 学时)

1.目的要求:

1)熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;

2)以线性表的各种操作(建立、插入、删除等)的实现为重点;

3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。

4)认真阅读和掌握本实验的参考程序,上机运行本程序,保存和打印出程序的运行

结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。

3.实验内容:

1)编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功能的调用。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

实验三栈、队列实验

(验证性试验8学时)

1.目的要求:

1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们。

2)本实验训练的要点是“栈”和“队列”的观点;

2.实验内容:

1)利用栈,实现数制转换。

2)利用栈,实现任一个表达式中的语法检查(选做)。

3)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

实验四树及二叉树实验

(验证性、应用性 6 学时)

1.目的要求:

1)树是一种重要的非线性数据结构,要求掌握二叉树的两种基本的存储结构,及各种

操作的算法实现(建立、遍历)以及应用。

2)本实验训练的要点是:递归算法的设计方法以及二叉树的应用。

2.实验内容:

1)按先序次序输入二叉树中结点的值,建立一棵以二叉链表作存储结构的二叉树,然

后按先序、中序、后序顺序分别遍历这棵二叉树。

2)编写一个求二叉树叶子结点数的算法。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

实验五图及其应用实验

(验证性 6 学时)

1.目的要求:

1)图是一种重要的非线性数据结构,要求掌握图的两种基本的存储结构(邻接矩阵、

邻接表),以及图的基本算法实现(建立、深度优先遍历、广度优先遍历),并能运

用图结构分析解决一些实际问题。

2)本实验训练的要点是:图的两种基本存储结构,及各种操作的算法实现(建立、遍

历)

2.实验内容:

1)建立无向图和有向图的邻接矩阵存储,计算顶点的度,并按要求输出图的基本信息。

2)建立有向图的邻接表存储表示,并根据存储计算顶点的出度和入度,然后按照要求

输出图的基本信息。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

实验六查找与排序实验

(验证性实验 6 学时)

1.目的要求:

1)学生在实习中体会各种查找和内部排序算法的基本思想、适用场合,理解开发高效算

法的可能性和寻找、构造高效算法的方法。

2.实验内容:

1)实现二分查找算法。

2)实现插入排序或选择排序算法。

3.主要仪器设备及药品

1)PC机

2)Turbo C 2.0 或Visual C++

数据结构实验答案1

重庆文理学院软件工程学院实验报告册 专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____201258014054 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

实验序号 1 实验名称实验一线性表基本操作实验地点S-C1303 实验日期2013年04月22日 实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。 2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。 3.编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成 (an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄) 实验过程及步骤1. #include #include #include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct

{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n"); for(i=0; i<=l->last; i++) { scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n");

《数据结构》实验指导书(C语言版)

《数据结构》课程实验指导 《数据结构》实验教学大纲 课程代码:0806523006开课学期:3 开课专业:信息管理与信息系统 总学时/实验学时:64/16 总学分/实验学分:3.5/0.5 一、课程简介 数据结构是计算机各专业的重要技术基础课。在计算机科学中,数据结构不仅是一般程序设计的基础,而且是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础。数据结构课程主要讨论各种主要数据结构的特点、计算机内的表示方法、处理数据的算法以及对算法性能的分析。通过对本课程的系统学习使学生掌握各种数据结构的特点、存储表示、运算的原理和方法,学会从问题入手,分析研究计算机加工的数据结构的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储机构及其相应的操作算法,并初步掌握时间和空间分析技术。另一方面,本课程的学习过程也是进行复杂程序设计的训练过程,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力。 二、实验的地位、作用和目的 数据结构是一门实践性较强的基础课程,本课程实验主要是着眼于原理和应用的结合,通过实验,一方面能使学生学会把书上学到的知识用于解决实际问题,加强培养学生如何根据计算机所处理对象的特点来组织数据存储和编写性能好的操作算法的能力,为以后相关课程的学习和大型软件的开发打下扎实的基础。另一方面使书上的知识变活,起到深化理解和灵活掌握教学内容的目的。 三、实验方式与基本要求 实验方式是上机编写完成实验项目指定功能的程序,并调试、运行,最终得出正确结果。具体实验要求如下: 1.问题分析 充分地分析和理解问题本身,弄清要求,包括功能要求、性能要求、设计要求和约束,以及基本数据特性、数据间联系等等。 2.数据结构设计 针对要解决的问题,考虑各种可能的数据结构,并且力求从中选出最佳方案(必须连同算法实现一起考虑),确定主要的数据结构和全程变量。对引入的每种数据结构和全程变量要详细说明其功用、初值和操作的特点。 3.算法设计 算法设计分概要和详细设计。概要设计着重解决程序的模块设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成若干程序模块,并决定模块的接口,即模块间的相互关系以及模块之间的信息交换问题。详细设计则要决定每个模块内部的具体算法,包括输入、处理和输出。 4.测试用例设计 准备典型测试数据和测试方案。测试数据要有代表性、敏感性。测试方案包括模块测试

现代教育技术课程教学大纲

《现代教育技术》课程教学大纲 英文名称:Modern education technology 授课专业:学前教育、小学教育学时:34 学分:2 开课学期:2014~2015学年第2学期 适用对象:师生 一、课程性质与任务 本课程是普通高校师类学生必修的公共基础课。通过对《现代教育技术》课程的学习,使师生能够掌握现代教育技术基本理论和方法,提高师生教育技术能力和水平,促进教师专业专业能力的发展,达到《中小学教师教育技术能力标准(试行)》对教师的基本要求,在日后的教学工作中成功地实现教师角色的转变,即由单纯的“知识传授者”、“教学主导者”转变为学生学习的设计者、组织者、促进者和帮助者,真正提高教学质量,能够担负起未来教育改革的重任。 本课程将重点介绍现代教育技术的理论基础、多媒体素材的采集与处理,信息化教学设计、多媒体教学课件的设计与应用,信息技术与课程整合等容,使学生将理论与实践相结合,进一步提升师生的综合素质。 二、课程教学的基本要求 1.根据“应试教育”转向素质教育的要求,转变和更新教育教学概念,课程的结构和容应充分体现现代性、先进性和超前性。

2.以教学活动的优化作为本门课程的出发点和归宿,重点培养提高学习者的教学设计能力,教学实践能力和教学评价能力,使教学活动更加科学化、规化和现代化。 3.从教学实际出发,重点突出现代教学媒体的选择和应用,充分发挥现有教学媒体的效益,实现信息技术与课程的有效整合。 4.使学生能利用至少一种多媒体创作工具制作课件,了解课件在教学中的应用。 5.能利用计算机网络进行信息检索、获取、处理。 三、课程教学容 第一章技术支持下的教育(2学时) 第二章现代教育技术理论基础(3学时) 第三章教学媒体理论(2学时) 第四章多媒体素材的采集与处理(6学时) 第五章教学设计理论(6学时) 第六章信息化教学设计(5学时) 第七章多媒体教学课件的设计与应用(5学时) 第八章信息技术和课程整合(2学时) 第九章教育信息资源的获取与管理(1学时) 第十章信息化教学系统及应用(2学时) 四、教学重点、难点 1.现代教育技术理论基础 2.多媒体素材的采集与处理 3.教学设计理论

数据结构实验一顺序表问题及实验报告模板 - Copy

实验一顺序表问题 【实验报告】 《数据结构与算法》实验报告一 学院:计算机与信息学院班级: 学号:姓名: 日期:程序名: 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个整数,产生顺序表,并输出结点值。 调试数据:9 8 7 6 5 4 3 2 1 2.从键盘输入1个整数,在顺序表中查找该结点。若找到,输出结点的位置;若找不到, 则显示“找不到”。 调试数据:第一次输入11,第二次输入3 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出顺序表所有结点值,观察输出结果。 调试数据:第一次insert "11" after "6" ,第二次insert "86" at "2" 4.从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。 调试数据:第一次delete the number at "2" ,第二次delete value "9" 注意:顺序表输出表现形式如下(实验报告上为截图): 顺序表: 第一题 Initially Seq: head -> 9 -> 8 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> null 第二题 找不到 6 第三题 insert "11" after "6": head -> 9 -> 8 -> 7 -> 6 -> 11 -> 5 -> 4 -> 3 -> 2 -> 1 -> null insert"86"at"2":head -> 9 -> 8 -> 86 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> null 第四题 delete the number at "2":head -> 9 -> 8 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 ->null delete value "9": head -> 8 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> null

《数据结构》实验报告

苏州科技学院 数据结构(C语言版) 实验报告 专业班级测绘1011 学号10201151 姓名XX 实习地点C1 机房 指导教师史守正

目录 封面 (1) 目录 (2) 实验一线性表 (3) 一、程序设计的基本思想,原理和算法描述 (3) 二、源程序及注释(打包上传) (3) 三、运行输出结果 (4) 四、调试和运行程序过程中产生的问题及采取的措施 (6) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (6) 实验二栈和队列 (7) 一、程序设计的基本思想,原理和算法描述 (8) 二、源程序及注释(打包上传) (8) 三、运行输出结果 (8) 四、调试和运行程序过程中产生的问题及采取的措施 (10) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (10) 实验三树和二叉树 (11) 一、程序设计的基本思想,原理和算法描述 (11) 二、源程序及注释(打包上传) (12) 三、运行输出结果 (12) 四、调试和运行程序过程中产生的问题及采取的措施 (12) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (12) 实验四图 (13) 一、程序设计的基本思想,原理和算法描述 (13) 二、源程序及注释(打包上传) (14) 三、运行输出结果 (14) 四、调试和运行程序过程中产生的问题及采取的措施 (15) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (16) 实验五查找 (17) 一、程序设计的基本思想,原理和算法描述 (17)

二、源程序及注释(打包上传) (18) 三、运行输出结果 (18) 四、调试和运行程序过程中产生的问题及采取的措施 (19) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (19) 实验六排序 (20) 一、程序设计的基本思想,原理和算法描述 (20) 二、源程序及注释(打包上传) (21) 三、运行输出结果 (21) 四、调试和运行程序过程中产生的问题及采取的措施 (24) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (24) 实验一线性表 一、程序设计的基本思想,原理和算法描述: 程序的主要分为自定义函数、主函数。自定义函数有 InitList_Sq、Out_List、ListInsert_Sq、ListDelete_Sq、LocateElem_Sq 、compare。主函数在运行中调用上述的自定义函数,每个自定义函数实现程序的每部分的小功能。 1.程序设计基本思想 用c语言编译程序,利用顺序存储方式实现下列功能:根据键盘输入数据建立一个线性表,并输出该线性表;然后根据屏幕菜单的选择,可以进行数据的插入、删除、查找,并在插入或删除数据后,再输出线性表;最后在屏幕菜单中选择结束按钮,即可结束程序的运行。 2.原理 线性表通过顺序表现,链式表示,一元多项式表示,其中链式表示又分为静态链表,双向链表,循环链表等,在不同的情况下各不相同,他可以是一个数字,也可以是一个符号,通过符号或数字来实现程序的运行。 3.算法描述

数据结构课程教学大纲

《数据结构》教学大纲 课程性质专业必修课 课程名称数据结构课程编号*04069 适用专业计算机科学与技术/软件工程开课学期第3学期 总学时64 理论50 学分数 4 实践14 一、课程性质与目标 数据结构课程属于专业必修课。通过本课程数据结构的学习,学生应实现如下目标: 1.知识目标:本课程主要讲述线性表、栈、队列、字符串、数组、树、二叉树、图、查找表、内部排序等常用数据结构的基本概念、操作及其典型应用例子。通过本课程的学习,应使学生掌握数据结构的概念及不同的存储结构、掌握一些典型算法原理和方法,且能够在不同存储结构上实现编程,同时,对于算法设计的方式和技巧也有所体会。 2.能力目标 (1)独立获取知识的能力——逐步掌握科学的学习方法,不断地扩展知识面,增强独立思考的能力,更新知识结构; (2)科学观察和思维的能力——运用数据结构的基本理论,熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。 (3)分析问题和解决问题的能力——学会利用数据结构原理分析实际问题,提高发现问题与解决问题的能力。对部分优秀的学生,培养其在知名程序设计在线评测系统(如POJ等)中求解实际问题的能力。 (4)求实精神——通过数据结构理论课程教学,培养学生严谨求实的科学态度和刻苦钻研的作风。 (5)实践能力——通过学习,有意识地培养学生编写高质量、高效率程序的能力和风格。 3.素质目标:使学生具备一定的计算思维,热爱算法设计和程序实现,面对实际问题能转换为计算机能够求解的过程并选择合适的数据结构,设计出在时间和空间上具备一定高效率的程序,培养学生学习算法设计与实现的细心和耐心,培养学生坚韧不拔,攀登技术高峰的优秀品质。让部分优秀的学生热爱上湖南省大学生程序设计竞赛,体会ACM程序设计竞赛的魅力。 二、课程教学基本要求 课程前应该认真预习,特别是前导课程相关知识体系; 课中应该认真听课,参与教学过程中的互动、回答问题及联系实际编程; 课后积极做好复习、认真完成作业及课程设计相关实践教学的环节。作业应具备一定实用性的数据结构和算法实现为主,对部分优秀学生,引入一定量的知名程序设计在线评测系统(如POJ等)中与数据结构相关的题目进行编程并在线提交验证正确性与时间、空间效率。 三、教学内容与学时分配

《现代教育技术》课程教学大纲

《现代教育技术》课程教学大纲 适用专业教师教育各专业 课程类型专业课 学时数 54 学分数 3 一、编写说明 (一)本课程的性质、地位和目的 现代教育技术是师范院校学生的必修课,是一门体现师范教育特色的课程,同时是职业师范各专业的特色课程。 “现代教育技术是教育改革和发展的制高点与突破口”,“信息技术对教育具有革命性的影响”。《现代教育技术》课程重点研究和培养从事教师工作必须具备的现代教育观念、基于信息技术的现代教育手段和方法、数字化教育资源设计开发能力、信息化教学设计能力、信息技术与课程整合的能力、信息技术与教育教学融合的能力、运用现代教育技术改革教育教学的能力、运用现代教育技术更好地培养学生的创新精神、创新思维、创新能力的能力,是肩负着培养适应与引领基础教育改革、信息技术与教育教学全面深度融合更好地培养具有国际竞争力的创新型人才重任的课程。 (二)本大纲制定的依据 本大纲是根据教师教育专业人才的培养目标所需要的现代教育技术理念、理论、技术、素养、方法和创新能力的要求,根据本课程的教学性质而制定。 (三)大纲内容选编原则与要求 1.实用性原则 2.先进性原则 3.创新、引领性原则 4.理论实践统一原则 5.全面能力培养原则

(五)考核方法与要求 本课程采用多元、立体、发展的评价方法,评价着眼于多元能力、创新创造能力、高级思维能力、举一反三融会贯通能力,解决高分低能的问题,解决浅层次学习的问题,解决简单记忆型学习的问题、解决学用分离的问题,成绩构成包括7个方面:视频学习与及时强化、实验实践练习与训练、阶段性测验、综合项目式训练、期末考试、创造分、协作合作活动贡献分。基于学习全程的记录,按“大数据”的要求累积,在此基础上进行科学的发展性评价、增量评价。 最终成绩采用新的评定规则,即愈8累积,延后定绩。即对于子考核,只有所取得分超过该子考核总分的80%,才能置入部分累积体系,以保证相关评价达到良好成绩,保证学生学得较为扎实,改变目前学生的囫囵吞枣式的学习;延后一学期给成绩,以保障学生有充裕的时间深化学习,开发成果,让成果产生价值。 视频学习与及时强化训练,共300分,具体分值规定为:分个视频3分,其中完全观看1分有2次学习情况的检测,答对1次给1分,答对2次给2分。每次问答显示15秒没有操作将自动关闭。答案自动比对。对于具体的视频可免视,但必须经过5道题测验,答对80%给2.3分,答对90%以上给2.8分。免视只出现于技术性内容,不包括1、2、5章。免视测验只出现1次,进行后自动变灰。过客无免视测验,无问题弹出,无笔记,无提问,无分值。 阶段性测验与后三章学习结束相对应,共150分。 实验、实践练习与训练共4次,共120分。 综合训练项目1个,共100分。 期末考试1次,共150分。 创造分范围是0—100分。其中的优秀创新作品必须包括网络、动画、DV、虚拟仿真中的至少两种形式。创造形式包括获奖、论文、专著、专利、项目、推广、服务。 协作、合作、活动贡献分最大值100分。 最终成绩折算,及格500分,一般600分,良好700分,优秀800分。 (六)教材 陈琳.现代教育技术(第2版).高等教育出版社,2014

数据结构实验报告(2015级)及答案

数据结构实验报告(2015级)及答案

《数据结构》实验报告 专业__信息管理学院______ 年级__2015级___________ 学号___ _______ 学生姓名___ _ _______ 指导老师____________ 华中师范大学信息管理系编

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 II 实验内容 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 1.一个线性表有n个元素(n

的顺序不变。设计程序实现。要求:采用顺序存储表示实现;采用链式存储表示方法实现;比较两种方法的优劣。 2. 从单链表中删除指定的元素x,若x在单链表中不存在,给出提示信息。 要求: ①指定的值x由键盘输入; ②程序能处理空链表的情况。 3.设有头结点的单链表,编程对表中的任意值只保留一个结点,删除其余值相同的结点。 要求: ①该算法用函数(非主函数)实现; ②在主函数中调用创建链表的函数创建一个单链表, 并调用该函数,验证算法的正确性。 LinkedList Exchange(LinkedList HEAD,p)∥HEAD是单链表头结点的指针,p是链表中的一个结点。本算法将p所指结点与其后 继结点交换。 {q=head->next;∥q是工作指针,指向链表中当前待处理结点。 pre=head;∥pre是前驱结点指针,指向q的前驱。 while(q!=null && q!=p){pre=q;q=q->next;} ∥

数据结构-教学大纲

《数据结构》教学大纲 课程编号:071213A 课程类型:□通识教育必修课□通识教育选修课 □专业必修课□专业选修课 ■学科基础课 总学时:48讲课学时:32 实验(上机)学时:16 学分:3 适用对象:计算机科学与技术专业 先修课程: 程序设计基础与应用、计算机基础 一、教学目标 本课程是计算机科学与技术专业的必修课。本课程是计算机科学与技术专业的核心课程,既重视学生相关理论的系统学习,又强调培养学生发现问题、分析问题和解决问题的实践能力。《数据结构》在计算机科学中是一门综合性的专业主干课,它是介于数学、计算机硬件、计算机软件三者之间的一门核心课程,而且是操作系统、数据库系统及其它系统程序的大型应用程序设计的基础,同时又直接为从事各类计算机应用的技术人员提供了必要的基本知识和解决实际问题的多种方法。 用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。《数据结构》主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。该课程逻辑上以线性结构、层次结构、网状结构为主线,物理上分顺序存储、链式存储,分别介绍基本数据结构的特点和算法。并重点介绍有关各种检索、排

序和文件组织的常用算法。通过上述知识的学习和能力的提高,为后续学习和实际工作打下良好的知识基础和能力基础。 目标1:通过对数据结构基本知识进行讲解,让学生理解并掌握数据的逻辑结构和物理结构,并掌握算法设计的基本思想。 目标2:培养学生分析算法复杂度的初步能力,锻炼学生逻辑思维能力和想象能力,并使之了解数据结构的各种应用场景。 目标3:鼓励学生运用算法知识解决各自学科的实际问题,培养他们的独立科研的能力和理论联系实际的能力。 二、教学内容及其与毕业要求的对应关系 (一)教学内容 1.知识体系 第一部分:数据结构的基本概念,包括数据、数据元素、数据项等基本概念、数据类型、抽象数据类型、算法的定义、算法的特性、算法的时间代价、算法的空间代价; 第二部分:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;单链表的类定义、构造函数、单链表的插入与删除算法及其平均比较次数的计算; 第三部分:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现;队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现; 第四部分:串的定义,串的表示和实现,串的操作的定义; 第五部分:数组的两种存储表示方法;矩阵的压缩存储; 第六部分:树和森林的概念。包括树的定义、树的术语、树的抽象数据类型;二叉树的概念、性质及二叉树的表示;二叉树的遍历方法;线索化二叉树的特性及寻找某结点的前驱和后继的方法;树与森林的实现,重点在用二叉树实现;森林与二叉树的转换;树的遍历算法;二叉树的计数方法及从二叉树遍历结果得到

数据结构实验报告-答案

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测 试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"" #include"" #include"" #include"" typedef struct node . . 示意图:

head head head 心得体会: 本次实验使我们对链表的实质了解更加明确了,对链表的一些基本操作也更加熟练了。另外实验指导书上给出的代码是有一些问题的,这使我们认识到实验过程中不能想当然的直接编译执行,应当在阅读并完全理解代码的基础上再执行,这才是实验的意义所在。

实验2 实验题目:二叉树操作设计和实现 实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历 的操作,求所有叶子及结点总数的操作。 实验主要步骤: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针), 如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求 所有叶子及结点总数。 实验代码 #include"" #include"" #include"" #define Max 20 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; R[i] 留在原位

数据结构教学大纲(完整资料).doc

【最新整理,下载后即可编辑】 XX师范学院大学本科专业教学大纲中文课程名称:数据结构 英文课程名称:Data Structures 适用专业:信息管理与信息系统 制定单位:商学院 执笔人: 审核人: 单位负责人: 制定时间:2017-2-10 XX师范学院教务处

二〇一七年一月

《数据结构》课程教学大纲 一、课程基本信息 (一)课程代码及课程名称 1.课程代码:06151090 2.课程名称(中/英文):数据结构/Data Structures (二)课程类别及课程性质 专业教育必修课程 (三)学时及学分: 总学时数:64;总学分数:3。 其中,讲授学时:32 ,实践(实验)学时:32。 (四)适用专业及开设学期 适用专业:信息管理与信息系统(本科) 开设学期:第二学期 (五)先修课程与后续课程 先修课程:大学计算机基础、高等数学、C语言程序设计 后续课程:数据库原理与应用、管理信息系统分析与设计、管理信息系统、Java程序设计(高级) 二、课程简介 “数据结构”是信息管理与信息系统专业一门重点专业基础

课程,也是学科专业核心专业基础课程之一,属于专业学位必修课程。本课程的教学任务是针对大量的信息处理对象,介绍对象信息与数据表示的各种抽象的、基本的逻辑结构及其上的基本运算操作。通过研究各种基本数据结构内在的逻辑关系和它们在计算机中的存储表示方式,初步建立数据结构上基本运算操作的正确性概念,同时,结合各种典型问题讨论其上的各种基本运算操作及其基本算法,讲授各种数据结构的特点、适用范围,以及对一些基本算法效率的定性和定量分析方法,为后续课程提供必要的数据结构基础。此外,配合实验课程的教学中,学生应理论联系实际,理论指导实践,通过规范地完成一系列数据结构实验进一步巩固所学的相关书本知识,在知识、能力、素质上得到进一步的提高。 三、教学目的与基本要求 (一)该课程教学目的与专业培养要求对应关系矩阵

《现代教育技术》教学大纲

《现代教育技术》教学大纲 一、课程基本信息 中文名称:现代教育技术 英文名称:Modern Educational Technology 课程编码:14105D 课程类别:必修课 总学时:64学时 总学分:4学分 适用专业:小学教育专业本科学生 先修课程:教育学、心理学、计算机基础 开课系部:教育与心理科学系 二、课程的性质与任务 《现代教育技术》是小学教育专业的专业课。这门课程主要培养小学教师面向21世纪教育教学的实践能力,力求通俗易懂,突出使用性和实效性,针对性和简明性。现代教育技术在教学过程中的运用,必然会优化教学过程,提高教学质量,能够解决教学改革过程中的一系列问题。 小学教育专业的学生是未来的小学教师,必须接受教育技术能力和素质的培养,才能够担负起未来教育的重任。 通过《现代教育技术》课程的学习,学生能够: 1.了解现代教育技术的基本含义 2.了解教学媒体的基本特征,并掌握其使用方法。 3.初步掌握教学设计的基本理论和方法,以及教学评价的基本内容。 4.具备一定的教育技术实践能力,能够结合专业特点设计、制作教学软件并应用到教学实践中。 5.理解现代教育技术对优化教育教学工作,实施素质教育的重要性。 三、课程教学基本要求 第一章教育技术概述(2学时) 教学内容: 1、教育技术的概念 2、教育技术的发展简史 3、现代教育技术与教育信息化 4、教育技术的理论基础

重点掌握教育技术概念及内涵,了解教育技术的理论基础,理解现代教育与教育信息化。教学重点与难点: 重点:教育技术的概念及内涵 现代教育技术与教育信息化 难点:教育技术的概念及内涵 第二章教学媒体(4学时) 教学内容: 1、教学媒体概述 (1)教学媒体及其特性 (2)教学媒体的分类 (3)教学媒体选择的依据 2、信息化教学环境 (1)校园网 (2)多媒体教室 (3)计算机网络教室 (4)微格教室 (5)电子白板 基本要求: 了解教学媒体的特性及其分类,掌握教学媒体选择的依据,熟悉信息化教学环境。 教学重点与难点: 重点:教学媒体的选择 信息化教学环境 难点:教学媒体的选择 第三章教学资源(8学时含上机实验) 教学内容: 1、教学资源概述 (1)概念 (2)分类

数据结构实验报告模板(验证型)

学期:2010-2011学年第一学期指导教师:杨华莉成绩: 实验一顺序表的基本操作 一、实验目的 1.掌握使用VC++6.0调试程序的基本方法; 2.掌握线性表的顺序存储结构的类型定义; 3.掌握顺序表的基本操作的实现,如:插入、删除、遍历、查找、排序、修改、合并等; 4.掌握顺序表的应用。 二、实验要求 1.认真阅读和掌握本实验的示例程序。 2.上机运行示例程序,打印出程序的运行结果,并作必要的说明。 3.对示例程序,按照对线性表的操作需要,在程序中至少添加2个顺序表的相关操作。如: i.查找并显示分数在区间[a,b)的学生信息; ii.查找并显示最高分或最低分学生信息; iii.统计不及格或及格人数及所占比例; iv.将信息表按学号、姓名或分数升序或降序排列; v.按学号顺序进行数据元素的插入; vi.删除指定学号或姓名的学生信息; vii.修改某个学生的信息; viii.其它。 4.重新改写主函数(要求必需调用自己添加的操作),打印出文件清单(自己添加的函数、修改后的主函数和运行结果)。 5.对修改后的程序,分析每一个算法(函数)的时间复杂度。 6.根据上述要求撰写实验报告,并简要给出算法设计小结和心得。 三、实验环境 1.台式计算机每人一台; 2.软件:Visual C++6.0 四、实验内容和实验结果

一.示例程序运行结果及说明

二.自己添加的新函数(至少2个),要求加必要的注释。 SqList Delete_SqList(SqList &L)//删除学生信息 { Elemtype x; int i=0; int choice=DMenu(); char name[25]; int num,k; if(!L.length) { printf("表为空,无法删除!"); exit(0); } switch(choice) { case 1: //按姓名删除 printf("\n请输入要删除的学生的姓名\n"); scanf("%s",&name); k=strcmp(name,L.data[i].name);//比较姓名 if(k==0) { x=L.data[i-1]; for(int m=L.length-1;m>=i-1;--m) L.data[i-1]=L.data[i]; --L.length; break; } case 2: //按学号删除 printf("\n请输入要删除学生的学号\n"); scanf("%d",&num); if(num==L.data[i].num) { for(int m=L.length-1;m>=i-1;--m) L.data[i-1]=L.data[i]; --L.length; break; } case 3:break; } return L;

数据结构实验报告-答案.doc

数据结构实验报告-答案 数据结构(C语言版)实验报告专业班级学号姓名实验1实验题目:单链表的插入和删除实验目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤:1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序:(1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码:#include“stdio.h“#include“string.h“#include“stdlib.h“#include“ctype. h“typedefstructnode//定义结点{chardata[10];//结点的数据域为字符串structnode*next;//结点的指针域}ListNode;typedefListNode*LinkList;//自定义LinkList单链表类型LinkListCreatListR1();//函数,用尾插入法建立带头结点的单链表LinkListCreatList(void);//函数,用头插入法建立带头结点的单链表ListNode*LocateNode();//函数,按值查找结点voidDeleteList();//函数,删除指定值的结点voidprintlist();//函数,打印链表中的所有值voidDeleteAll();//函数,删除所有结点,释放内存

数据结构 教学大纲

《数据结构》课程教学大纲 课程代码:090131110 课程英文名称:Data structure 课程总学时:48 讲课:40 实验(上机):8 适用专业:信息与计算科学专业 大纲编写(修订)时间:2017.11 一、大纲使用说明 (一)课程的地位及教学目标 本课程是信息与计算科学专业的一门重要的专业基础课,它较详细地阐述了使用计算机解 决具体问题时所建立的数学模型的逻辑结构与存储结构的多种类型以及对数据具体进行操作的算法实现。通过本课程的学习,使学生了解和掌握使用高级语言编程时组织数据的基本理论和方法,是学生进一步学习计算机方面相关专业课程的必备基础。 (二)知识、能力及技能方面的基本要求 1.基本知识:掌握时间效率和空间效率的概念,掌握数据结构中的线性表、树、图等基本结构。 2.基本理论和方法:掌握线性表的基本操作,栈、队列、串、数组的基本操作,树的应用方法,图的应用方法及数据的查找、排序操作等。 3.基本技能:学生应该能够使用高级语言正确定义数据的逻辑结构和选择有效的存储结构 解决具体问题,其算法实现应注重时间效率和空间效率。数据对象查找与排序操作等较常用基本操作,学生应掌握算法学会合理使用。 (三)实施说明 1.教学方法:课堂讲授中要重点对基本概念、基本方法和解题思路的讲解;采用启发式教学,培养学生思考问题、分析问题和解决问题的能力;引导和鼓励学生通过实践和自学获取知识,培养学生的自学能力;增加讨论课,调动学生学习的主观能动性;注意培养学生提高利用标准、规范及手册等技术资料的能力。讲课要联系实际并注重培养学生的创新能力。 2.教学手段:在教学中采用电子教案及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。 (四)对先修课的要求 要求学生有高级语言的基础知识与编程经验,应该学习过C语言程序设计等课程。 (五)对习题课、实验环节的要求 1.对习题课的要求 学习完每部分内容,都要做相关的练习题,加深对课堂所学知识的理解,检验学生对所学内容的掌握程度,引导学生对所讲例题举一反三,从而达到熟练编程的能力。 2.对实验环节的要求 上机实践环节在理论课后一周左右进行。通过上机调试运行自编程序,熟练掌握程序设计、调试程序的方法。 3. 本课程的课程设计单独设课,单独考核,具体要求参见相应的课程设计教学大纲。 (六)课程考核方式 1.考核方式:考试 2.考核目标:在考核学生对数据结构基本知识、基本方法的基础上,重点考核学生的分析能力及算法设计能力。

《现代教育技术》教学大纲2016版

《现代教育技术》课程教学大纲 课程编号: 学时:36课时 适用对象:师范类 课程类别:公共必修课 考核要求:考查,形成性评价 使用教材:自编教材 主要参考书与文献: [1] 《中小学教师教育技术能力标准》,中华人民共和国教育部,2004.12 [2] 张建平主编,《现代教育技术—理论与应用》,北京:高等教育出版社,2006. [3] 黄荣怀沙景荣彭绍东,《教育技术学导论》,北京:高等教育出版社, 2006.2 一、课程的性质和目标 《现代教育技术》是师范生掌握教育技术知识和提高教育技术能力的一种有效途径。是一门导入性的公共必修课。 教育技术是教育教学改革的突破口,教育工作者必须具备一定的教育技术能力与素养。《现代教育技术》作为高等院校师范类学生的公共必修课程,其核心目标是使每位学生具备良好的教育技术意识与态度,掌握教育技术基本知识和基本技能,能运用教育技术的相关理论指导教与学的实践,初步具有教育技术应用与创新能力,掌握教学设计的方法并进行教学过程的设计、实施和评价,熟悉数字化教学资源的开发和利用。从而能够运用教育技术优化教与学,促进教育教学

改革。 二、课程教学任务要求 现代教育技术是一门实践性、操作性很强的课程,教学应达到以下基本要求: 1、了解教育技术的基本概念与理论基础; 2、了解教育技术基本技能并初步掌握其一般方法; 3、初步掌握教学设计的基本理论和方法,以及教学评价的基本内容; 4、初步掌握数字化教学资源的开发和利用;学会基本的教学软件制作和应用技术; 5、了解教师专业化发展应具备的专业素质并初步掌握教学实施的基本技能; 6、对教育技术理论与应用产生兴趣,愿意对该领域做较深入的探讨。 三、学时分配: 单元一:教育技术基本知识 6课时 第一章现代教育技术概述(2课时) 第二章教育技术基本理论(2课时) 第三章教育技术能力标准(2课时) 单元二:教育技术基本技能 16课时 第四章信息检索、加工与利用方法(2课时) 第五章常见教学媒体选择与开发方法(12课时)

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

相关主题
文本预览
相关文档 最新文档