数据结构实验课程计划表

合集下载

《数据结构》课程设计时间安排表

《数据结构》课程设计时间安排表

《数据结构》课程设计时间安排表
《数据结构》课程设计时间安排表
一.设计时间:第17周——18周
二.计划安排:
1.计101,G计101、中新计101班(指导教师:汪前进、朱敏)
上机地点:二楼第1机房
2.软件101—102班(指导教师:董剑利、戴红伟)
上机地点:二楼第3机房
3.网络101—102班(指导教师:施珺、胡云)
上机地点:一楼105#机房
设计时间安排表
三.设计地点:机房、教室、学生宿舍
四.说明:
本课程设计为每位同学提供24学时的上机安排,以便能及时收集资料、编写程序实现算法、测试程序和完成设计报告;指导教师和学员必须准时到达机房,机房工作时间为上午8:30—11:30,下午2:30—5:30;指导教师要做好考勤工作和设计的指导工作;上机期间师生一律不得做与课程设计无关的事情,要严格遵守实验室规章制度,注意人身安全和设备安全。

非上机时间学生可以在教室、图书馆、宿舍等场所完成资料查阅、算法构思设计、编程调试等工作。

2011年12月13日。

数据结构设计性实验安排

数据结构设计性实验安排

10级数据结构设计性实验任务
1.《数据结构实验指导书》(电子版,A4,共22页)
2.设计性实验
按照《指导书》第3章的要求,完成一个抽象数据类型的实现。

在每个小班(约50人),至多(可以少于)5人做同一种抽象数据类型,但每人应独立完成,并在设计和实现细节上要有所不同。

由班长(或学习委员)组织和登记班里每个同学选做的抽象数据类型,相同者超过5人,通过协商解决。

(1)实验前,完成“预习报告”;
(2)选择一或多种存储结构(至少一种,鼓励多种);
(3)要进行较完整的测试(含数据结构的构造函数),是评定实验成绩的重要方面之一;
(4)在预习报告基础上,增加上机调试、对存储结构的特点和各基本操作实现函数的时间复杂度分析,思考和小结等,构成完整的实验报告。

考试前三天完成和提交实验报告。

数据结构课设实验日历1208

数据结构课设实验日历1208
实验教学日历
(2012~2013学年第1学期)
课程名称:数据结构课程设计
班级及人数:11030501-4 40*4人
实验室名称:信息技术实验中心


实验项目名称
实验、上机内容摘要
计划
时数
仪器
(台)套数
每(台)套
学生数
实验类型
17
开题与初步设计
按题目设计存储结构实现tc兼容环境下的程序设计,完成相应题目的功能。设计数据结构与算法并调试算法实现的功能模块。最好是用文件存储数据,对数据可查询、插入、修改、删除。程序运行交互性好,使用方便。
学院教学院长:室主任:任课教师:实验指导教师:
16
40
1
18
整体功能完成设计、编码调试、调试与验收
整体功能代码设计、功能完善与调试、功能测试、按论文要求完成设计报告
16
40
1
注:此表是实验安排及实验教学工作量计算的主要依据,由学院责成有关任课教师会同实验指导教师依据教学大纲,在学期第二周内填
写好,经学院教学院长签字后,一式三份:一份送实践教学科,一份留学院,一份送承担任务的实验室。

数据结构实习计划表

数据结构实习计划表
备注
实习成绩评分标准:
一.实习内容完成程度占总成绩60%。
在做出结果且正确的情况下。
完成15个题60分(占总成绩60*60%=36分)18个题80分(占总成绩80*60%=48分)20个题100分(占总成绩100*60%=60分)。
二、考勤20%
全勤20分,缺旷1-6节10分,缺旷7-10节5分,10节以上0分。
三、实习报告(可打印)。
书写工整、内容全面、重要的语句后有注释,格式正确20分。
书写较工整、内容较全面、注释不够完全,格式基本正确11-19分。
完成实Байду номын сангаас报告,但书写混乱,无注释或注释不全5-10分。
无实习报告实习成绩为0分。
实习报告要求:
一.实习目的
二.实验内容
三.调试程序的步骤
四.实验程序代码(添加必要的注释)
实训(专周)计划表
2010至2011学年第二学期周次:14-15
实训项目名称
数据结构实习
实训日期
实训地点
计算机中心三楼软件开发室
实训班级
20991X
人数
29
责任教师
陈昌豪
辅导教师
王佳祥、刘贝贝
实训目的
1.掌握线性表、链表、栈与队列、串、二叉树、查找、排序的基本概念
2.巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力
8.计算单链表的长度,即求单链表中元素个数。
9.设整数序列a1,a2,…,an,给出求解最大值的递归程序。
10.已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法:
(1)求链表的结点个数。(2)求所有整数的平均值。
实训考核
实习内容完成程度60%。

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

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

《数据结构》实验教学大纲(Data Structure)课程代码:0610009实验学时:25学时先修课程:《C语言程序设计》、《离散数学》一、目的要求目的:通过实验,可使学生深刻理解各种逻辑结构、存储结构的特性,培养通过实际问题分析其数据对象、基本操作,选择逻辑结构、存储结构灵活应用基本算法,并设计出具有专业水准的应用程序的能力。

要求:熟悉VC++的编程和调试环境,根据实验内容和要求,认真完成程序编写、上机调试、运行结果分析,书写实验报告。

二、实验项目内容及学时分配实验一、单链表的建立、删除和插入(2学时)1. 实验目的要求熟悉C语言的上机环境,进一步掌握C语言的结构特点。

掌握线性表的链式存储结构——单链表的定义及C语言实现。

2. 实验主要内容实现线性表在链式存储结构——单链表中的各种基本操作。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验二、栈的建立、插入和删除(2学时)1. 实验目的要求掌握栈的顺序表示和结构特点,描述方法及有关概念。

2. 实验主要内容实现顺序栈的建立、插入、删除的操作算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验三、队列的建立、插入和删除(2学时)1. 实验目的要求掌握队列的表示和结构特点,描述方法及有关概念。

2. 实验主要内容实现队列的建立、插入、删除的操作算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验四、模式串的匹配(3学时)1. 实验目的要求掌握串的结构特点和各种基本操作。

2. 实验主要内容实现串的模式匹配算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验五、稀疏矩阵的转置(2学时)1. 实验目的要求掌握稀疏矩阵的结构特点,描述方法及有关概念。

数据结构152-4812B-数据结构实践-教学进度表-邓庆山

数据结构152-4812B-数据结构实践-教学进度表-邓庆山

江西财经大学
本科课程教学进度计划表2015—2016学年度第二学期
学院软件与通信工程学院教学系
数据结构与算法(软件)(课程组)
主讲教师邓庆山
填表日期:2015 年12 月 2 日
教务处制表
江西财经大学本科课程教学进度计划表
2015 —2016 学年度第二学期
主讲教师邓庆山职称副教授学历研究生学位_博士___ 主授专业软件工程课程名称数据结构课程编号4812B 班级软件152班学生人数47
总学时24 学时,其中课堂讲授0 学时;实验(上机)教学20 学时;其它教学(讨论、见习等) 2 学时;机动学时实习实训(包括课程实习、课程实训、课程设计等)周
教材(名称、主编、出版社、出版时间等)数据结构(C语言版),严蔚敏,人民邮电出版社
主要参考书数据结构习题集(C语言版),严蔚敏,清华大学出版社数据结构,许卓群等,北京:高等教育出版社数据结构(使用C语言),蔡明志著,北京:科学出版社
成绩考核说明及要求:
其成绩评定方法:平时成绩20% + 实验报告成绩50%+项目完成30%
考试题型:
考试时间:
鉴于开卷考试的考场安排等多方面原因,期末考试将于全校统考前完成。

系主任(签字):教学院长(签字):
2015年12月1日2015年12月1日。

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

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

《数据结构》课程实验指导《数据结构》实验教学大纲课程代码:0806523006 开课学期:3 开课专业:信息管理与信息系统总学时/实验学时:64/16 总学分/实验学分:3.5/0.5一、课程简介数据结构是计算机各专业的重要技术基础课。

在计算机科学中,数据结构不仅是一般程序设计的基础,而且是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础。

数据结构课程主要讨论各种主要数据结构的特点、计算机内的表示方法、处理数据的算法以及对算法性能的分析。

通过对本课程的系统学习使学生掌握各种数据结构的特点、存储表示、运算的原理和方法,学会从问题入手,分析研究计算机加工的数据结构的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储机构及其相应的操作算法,并初步掌握时间和空间分析技术。

另一方面,本课程的学习过程也是进行复杂程序设计的训练过程,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力。

二、实验的地位、作用和目的数据结构是一门实践性较强的基础课程,本课程实验主要是着眼于原理和应用的结合,通过实验,一方面能使学生学会把书上学到的知识用于解决实际问题,加强培养学生如何根据计算机所处理对象的特点来组织数据存储和编写性能好的操作算法的能力,为以后相关课程的学习和大型软件的开发打下扎实的基础。

另一方面使书上的知识变活,起到深化理解和灵活掌握教学内容的目的。

三、实验方式与基本要求实验方式是上机编写完成实验项目指定功能的程序,并调试、运行,最终得出正确结果。

具体实验要求如下:1.问题分析充分地分析和理解问题本身,弄清要求,包括功能要求、性能要求、设计要求和约束,以及基本数据特性、数据间联系等等。

2.数据结构设计针对要解决的问题,考虑各种可能的数据结构,并且力求从中选出最佳方案(必须连同算法实现一起考虑),确定主要的数据结构和全程变量。

对引入的每种数据结构和全程变量要详细说明其功用、初值和操作的特点。

《数据结构课程设计》实验大纲[1]

《数据结构课程设计》实验大纲[1]

《数据结构课程设计》课程实验大纲一、课程名称:数据结构课程设计二、课程性质:其他实践教学环节三、实验学时:36学时四、课程类型:独立设课五、课程适用专业:计算机科学技术专业、计算机科学与技术专业(实验班)、软件工程专业六、教学目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

七、实验教学项目表八、选题要求:在上面实验项目1、2、5中选一个小题做,在实验项目3、4中选择一个小题做,即一共需要完成两个小题。

九、课程设计报告要求:每个实验应该有相应的课程设计报告,包含如下内容:(1)问题描述及分析(2)功能模块及数据结构描述(3)主要算法流程描述(4)使用说明如何运行,如何输入测试数据,会出现的输出结果等,给出实例。

(5)实验及总结调试过程中遇到的主要问题有哪些?如何解决的。

有何结论?课程设计报告的格式要求1.字体设置要求为:(1)标题:黑体小四(2)正文内容:宋体小四号(3)表题与图题宋体五号(4)参考文献:宋体五号2.表格每个表格应有表序和表题,表序和表题应写在表格上方正中,表序后空一格书写表题。

3.插图插图必须精心制作,线条粗细要合适,图面要整洁美观。

每幅插图应有图序和图题,图序和图题应放在图位下方居中处。

4.各类参考文献的书写格式如下:连续出版物:[序号]作者.书名.刊名,年,卷号(期号):起~止页码专(译)著:[序号]作者.书名.(译者).出版地:出版者,出版年.起~止页码论文集:[序号]作者.文章名.文集名.会议地点,年.起~止页码学位论文:[序号]姓名.学位论文题目:[XX学位论文],授予单位所在地:授予单位,授予年十、课程设计成绩评定:准确评定成绩是课程设计的重点。

数据结构与算法实验课表安排

数据结构与算法实验课表安排

数据结构与算法分析课程设计报告课题名称:拓扑排序——打印输出计算机本科专业4年每学期的课表提交文档学生姓名:提交文档学生学号:同组成员名单:指导教师姓名:指导教师评阅成绩:指导教师评阅意见:提交报告时间: 2010 年 12 月日1. 实验题目:拓扑排序——打印输出计算机本科专业4年每学期的课表2. 实验的目的和要求:(1)采用C++实现;(2)熟练掌握图的应用;(3)熟练掌握图的邻接矩阵存储结构以级拓扑排序的基本思想;(4)上机调试程序,掌握查错,排错使程序能正确运行。

3. 实验的环境:(1)硬件环境:联想G450笔记本电脑(2)软件环境:WindowsXP ,MicrosoftVisualC++6.04. 算法描述:●程序流程图 ●● ●●●●●●●●●●●●●●● 类的层次结构,每个类的设计, 包括数据成员和成员函数组成.● class Graph● {● public: 开 始构建课程信息图 读取文件,将课程信息保存在链表中 调用拓扑排序,对list 排序将结果存入sortedlist 中 利用sortedlist 安排课表 打印课表,并将课表存入文本文件 结束● virtual int e()=0;● virtual int first(int)=0;● virtual int next(int,int)=0;● virtual void setEdge(int,int,int)=0;● virtual void delEdge(int,int)=0;● virtual int weight(int,int)=0;● virtual int getMark(int)=0;● virtual void setMark(int,int)=0;●};●class Graphm:public Graph●{●public:● Graphm(int numV ert);● ~Graphm();● int n();● int e();● int first(int);● int next(int,int);● void setEdge(int,int,int);● void delEdge(int,int);● int weight(int,int);● int getMark(int);● void setMark(int,int);●private:● int numV ertex,numEdge;● int **matrix;● int *mark;●};●class Link●{●public:● Link();● Link(string code,string name,int period,int semester,string precondition);● void setCode(string str);● string getName();● void setName(string str);● int getPeriod();● void setPeriod(int p);● int getSemaster();● void setSemester(int s);● string getPrecondition();● void setPredition(string str);● Link* getNext();● void setNext(Link*);●private:●string code;●string name;●int period;●int semester;●string precondition;●Link *next;●};●class List●{●public:● List();● void addCourse(Link* course);● void insertCourse(Link* course);● Link* getHead();● Link* getTail();● void printlist();●private:● Link *head;● Link *tail;●};●测试程序说明●int main()●{● readFromFile();//从文件读取课程信息● Graphm graph(38);●buildGraph(list,&graph);//做课程信息图● topsort(&graph);//对图进行拓扑排序● sortedlist.printlist();//打印排序后的结构●cout<<endl;● courseArrange();//安排课表printSchoolTimeTable();//打印课表,并将其存入文件● return 0;●}●5.源程序清单:●添加必要的注释●static List list;//存放初始课程信息●static List sortedlist;// 存放拓扑排序后的课程信息(顺序)●static int arraynum[8];//保存每个学期要开设的课程数目●static int index; //共八个学期●static string courName;//从文件读取课程编码●static string courCode;//从文件读取课程名称●static string courPrecondition;//从文件读取课程的先决条件●static int courperiod;//从文件读取对应课程的开设学时数●static int coursemester;//从文件读取对应课程的开课学期●//读取文件数据,创建list●void readFromFile()●{●fstream input;●input.open("course_inf.txt");●char ch;●ch=input.get();●while( !(ch>='0'&&ch<='9') )//开始出现数字时,开始读取arraynum[]● ch=input.get();● if(ch>='0'&&ch<='9'&&(index<8) )● {●while(ch!='\n')●{● if(ch>='0'&&ch<='9'&&(index<8) )● arraynum[index++]=ch-48;//将读入的字符转换成对应数字● ch=input.get();●}● }● while(ch!='c')● ch=input.get();● while(ch!='\n')● ch=input.get();//跳过所有注释行●while(!input.eof())●{● if(ch=='c')● {● while(ch!=9)● {● courCode.insert(courCode.size(),1,ch);//读取courCode ● ch=input.get();● }● while(ch==9)● ch=input.get();● while(ch!=9)● {● courName.insert(courName.size(),1,ch);//读取courName● ch=input.get();● }● while(ch==9)● ch=input.get();● courperiod=ch-48;//读取 courperiod● ch=input.get();● while(ch==9)● ch=input.get();● coursemester=ch-48;//读取coursemester● ch=input.get();● while(ch==9)● ch=input.get();● if(ch=='c')● while(ch!='\n')//读取 courPrecondition● {● courPrecondition.insert(courPrecondition.size(),1,ch);● ch=input.get();● }● } //if● ch=input.get();● if(courCode.size()>0)● {● Link*courselink=newLink(courCode,courName,courperiod,● coursemester,courPrecondition);//读取一次完整的信息即可将它生成一个Link节点● list.addCourse(courselink);//将Link节点加入List● }● courCode.erase();//清除string中的内容,用于下一行次读取文件● courName.erase();● courPrecondition.erase();●}//while● input.close();●}●//建图,添加有先决条件的结点之间的边●void buildGraph(List &courseList,Graph* courseGraph)●{● Link* courselink=courseList.getHead();● int v1=0;● while(courselink!=NULL)● {● string str=courselink->getPrecondition();● for(int i=0;str[i]!='\0';)● {● if(str[i]=='c')//课程以c开头,由此分辨先决条件● {● char ch1=str[++i];● char ch2=str[++i];● int v2=10*(ch1-48)+(ch2-48)-1;//将课程号转换为整型数据,图的下标用int表示的● courseGraph->setEdge(v2,v1,1);● }● else● i++;● }● v1++;● courselink=courselink->getNext();● }●}●void tophelp(Graph* G, int v)// Process v●{● G->setMark(v, 0);● for (int w=G->first(v); w<G->n();w = G->next(v,w))● if (G->getMark(w) == 1)● tophelp(G, w);● Link* courselink=list.getHead();● for(int i=0;i<v;i++)● {● courselink=courselink->getNext();● }● sortedlist.insertCourse(courselink);//将拓扑排序的正序存入sortedlist中,用于课程的安排●}●void topsort(Graph* G) // Topological sort●{● int i;● for (i=0; i<G->n(); i++) // Initialize● G->setMark(i,1);● for (i=0; i<G->n(); i++) // Do vertices● if (G->getMark(i) == 1)● tophelp(G, i); // Call helper●}●void courseArrange()//安排课表●{●Link* temp=sortedlist.getHead();●int count[8];●for(int i=0;i<8;i++)●count[i]=0;●for(;count[0]<7&&temp!=NULL;temp=temp->getNext())//优先安排已经预设学期的课程●{● if(temp->getSemaster()==1)● count[0]++;● else if(temp->getSemaster()==2)● count[1]++;● else if(temp->getSemaster()==3)● count[2]++;● else if(temp->getSemaster()==4)● count[3]++;● else if(temp->getSemaster()==5)● count[4]++;● else if(temp->getSemaster()==6)● count[5]++;● else if(temp->getSemaster()==7)● count[6]++;● else if(temp->getSemaster()==8)● count[7]++;●}● temp=sortedlist.getHead();//再按学期顺序安排已经安排学期的课程,srtedlist中的先后顺序对应了学期的先后顺序●for(;temp!=NULL;temp=temp->getNext())●{● if(count[0]<arraynum[0])//semter1● {● if(temp->getSemaster()==0)● {● temp->setSemester(1);● count[0]++;● }● }● else if(count[1]<arraynum[1])//semter2 ● {● if(temp->getSemaster()==0)● {● temp->setSemester(2);● count[1]++;● }● }● else if(count[2]<arraynum[2])//semter3 ● {● if(temp->getSemaster()==0)● {● temp->setSemester(3);● count[2]++;● }● }● else if(count[3]<arraynum[3])//semter4 ● {● if(temp->getSemaster()==0)● {● temp->setSemester(4);● count[3]++;● }● }● else if(count[4]<arraynum[4])//semter5 ● {● if(temp->getSemaster()==0)● {● temp->setSemester(5);● count[4]++;● }● }● else if(count[5]<arraynum[5])//semter6● {● if(temp->getSemaster()==0)● {● temp->setSemester(6);● count[5]++;● }● }● else if(count[6]<arraynum[6])//semter7● {● if(temp->getSemaster()==0)● {● temp->setSemester(7);● count[6]++;● }● }● else//semter8● {● if(temp->getSemaster()==0)● {● temp->setSemester(8);● count[7]++;● }● }●}●}●void printSchoolTimeTable()//打印课表{Link* temp=sortedlist.getHead();//semter1cout<<"courses of semester 1 :"<<endl;fstream output;output.open("course_table.txt");output<<"第一学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==1){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl; }}temp=sortedlist.getHead();//semter2cout<<"courses of semester 2 :"<<endl;output<<"第二学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==2){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl; }}temp=sortedlist.getHead();//semter3cout<<"courses of semester 3 :"<<endl;output<<"第三学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==3){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl; }}temp=sortedlist.getHead();//semter4cout<<"courses of semester 4 :"<<endl;output<<"第四学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==4){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl; }}temp=sortedlist.getHead();//semter5cout<<"courses of semester 5 :"<<endl;output<<"第五学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==5){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl; }}temp=sortedlist.getHead();//semter6cout<<"courses of semester 6 :"<<endl;output<<"第六学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==6){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl;}}temp=sortedlist.getHead();//semter7cout<<"courses of semester 7 :"<<endl;output<<"第七学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==7){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl;}}temp=sortedlist.getHead();//semter8cout<<"courses of semester 8 :"<<endl;output<<"第八学期课程: "<<endl;for(;temp!=NULL;temp=temp->getNext()){if(temp->getSemaster()==8){output<<temp->getCode()<<" "<<temp->getName()<<endl;cout<<temp->getCode()<<" "<<temp->getName()<<endl;}}output.close();}6.运行结果:●测试数据选择●(课程编码,课程名称,开课学时,预设开课学期,先决条件)●("c01","程序设计基础",5,0,"") ("c02","离散数学",6,0,"c01")●("c03","数据结构",4,0,"c01 c02") ("c04","汇编语言",5,0,"c01")●("c05","算法设计",4,0,"c03 c04") ("c06","计算机组成原理",6,0,"")●("c07","微机原理",4,0,"c03") ("c08","单片机应用",3,0,"c03")●("c09","编译原理",5,0,"c03") ("c10","操作系统原理",4,0,"c03")●("c11","数据库原理",5,0,"c03") ("c12","高等数学",6,0,"")●("c13","线性代数",6,0,"") ("c14","数值分析",6,0,"c12")●("c15","普通物理",6,0,"c12") ("c16","计算机文化",3,0,"")●("c17","计算机系统结构",6,0,"c06") ("c18","计算机网络",5,0,"c03")●("c19","数据通信",6,0,"") ("c20","面向对象程序设计",3,0,"c01 c03")●("c21","Java",3,0,"c01 c03") ("c22","C#.net",5,0,"c01 c03")●("c23","PowerBuilder",5,0,"c01 c03") ("c24","VC++",3,0,"c01 c03")●("c25","ASP程序设计",6,0,"c01 c03") ("c26","JSP程序设计",5,0,"c01 c03")●("c27","",5,0,"c01 c03") ("c28","Delphi",5,0,"c01 c03")●("c29","C++Builder",5,0,"c01 c03") ("c30","英语",5,1,"")●("c31","英语",5,2,"") ("c32","英语",5,3,"")●("c33","英语",5,4,"") ("c34","英语",5,5,"")●("c35","英语",5,6,"") ("c36","英语",5,7,"")●("c37","英语",5,8,"") ("c38","大学语文",3,1,"")●测试结果分析能够正确安排课程。

数据结构实训学习计划

数据结构实训学习计划

导言数据结构是计算机科学中非常重要的一门基础课程,它是建立在程序设计基础之上的学科,是程序设计语言分析和设计的基础。

在实际工程场景中,对数据结构的掌握和运用能够有效提高程序的性能、减少资源的占用,提高程序的可读性和可维护性。

因此,深入学习数据结构并实践运用是每个计算机科学与技术专业的学生必不可少的一环。

一、学习目标1. 掌握主要数据结构的基本概念、定义和基本操作。

2. 理解数据结构在算法设计和分析中的重要作用。

3. 掌握并能够运用常见的数据结构解决实际问题。

二、学习内容1. 线性表2. 栈与队列3. 树与二叉树4. 图5. 查找与排序算法三、学习计划1. 第一周学习内容:线性表学习目标:了解线性表的概念、顺序表和链表的结构、插入、删除和查找操作。

实践任务:编写顺序表和链表的实现代码,完成相关的操作。

2. 第二周学习内容:栈与队列学习目标:掌握栈和队列的定义、实现和应用。

实践任务:实现栈和队列,编写栈和队列的应用代码,如括号匹配、表达式计算等。

3. 第三周学习目标:了解树和二叉树的定义、遍历和应用。

实践任务:实现树和二叉树的操作,编写相关算法如先序遍历、中序遍历、后序遍历等。

4. 第四周学习内容:图学习目标:理解图的表示方法、图的遍历和应用。

实践任务:实现图的操作,编写深度优先搜索和广度优先搜索算法,解决相关问题。

5. 第五周学习内容:查找与排序算法学习目标:掌握常见的查找与排序算法,了解它们的思想和实现。

实践任务:编写查找和排序算法的实现代码,对比它们的性能和适用场景。

四、实践项目1. 实现一个基于链表的简单日程管理系统,支持添加、删除、查询事件。

2. 实现一个迷宫求解算法,通过深度优先搜索或者广度优先搜索找到迷宫的一条路径。

3. 实现一个排序算法比较器,对比不同排序算法的性能和适用场景。

五、学习评估1. 完成每周的实践任务,并提交对应的代码和文档。

2. 完成实践项目,并撰写报告。

3. 参与学习讨论,对学习内容进行总结和归纳。

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

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

《数据结构》实验课程教学大纲一、课程名称:《数据结构》实验二、课程性质:学科与专业必修课三、实验学时:12学时四、课程类型:非独立设课五、课程适用专业:软件工程专业六、教学目的:《数据结构》是软件工程专业的一门重要的专业基础课,课程旨在使学生学会计算机加工的数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构及存储结构,并进行相应的运算。

实验是该课程实践教学的重要环节,目的是培养学生根据求解问题的性质选择合理的数据结构,提高分析、设计、编程以及控制求解算法的时间、空间复杂性的能力。

七、实验教学项目表1项目顺序存储的线性表时数 2 性质验证内容要求内容:1、设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。

试设计一算法,将x插入到线性表的适当位置上,以保持线性表的有序性。

2、用向量作存储结构,试设计一个算法,仅用一个辅助结点,实现将线性表中的结点循环右移k位的运算。

3、用向量作存储结构,试设计一个算法,仅用一个辅助结点,实现将线性表逆置的运算。

要求:了解线性表的逻辑结构特征,熟练掌握线性表的顺序存储结构的描述方法,及在其上实现各种基本运算的方法。

2项目单链表上的操作时数 2 性质验证内容要求内容:1、已知带头结点的动态单链表L中的结点是按整数值递增排序的,试写一算法将值为x的结点插入到表L中,使L仍然有序。

2、设计一算法,逆置带头结点的动态链表L。

要求利用原表的结点空间,并要求用尽可能少的时间完成。

3、假设有两个按元素值递增有序的线性表A和B,均以单链表作存储结构,试编写算法将A表和B表归并成一个按元素值递减有序的线性表八、实验报告要求:实验报告内容应该主要包括如下内容:(1)实验题目(2)实验内容(3)实验目的(4)实验环境(5)主要算法与数据结构(6)实验结果(7)实验总结九、实验成绩评定:(1)本实验总计12分,每个实验2分,每个实验需在规定时间内完成。

数据结构实验安排

数据结构实验安排

数据结构实验安排实验一顺序表的插入和删除1.实验目的:了解顺序表的基本概念、结构的定义及在顺序表上的基本操作(插入、删除、查找以及线性表合并),通过用C语言实现以上操作,更好地了解书本上的内容。

2.实验预备知识:⑴复习C语言中数组的用法。

⑵了解线性表和顺序表的概念,顺序表的定义方法;✧线性表是n个数据元素的有限序列,至于每个数据元素的具体含义,在不同的情况下各不相同。

✧顺序表是线性表的顺序存储表示,是用一组地址连续的存储单元依次存储线性表的数据元素。

✧在C语言中,顺序表是用数组或指针来实现的。

⑶掌握线性表在顺序存储结构上实现基本操作:查找、插入、删除和合并的算法。

在实现这些算法的时候,要注意判断输入数据的合法性,除此之外还要要注意以下内容:✧在实现查找的时候,首先要判断该顺序表是否为空,其次要判断查找后的结果(查到时输出查到的数据,未查到时给出错误提示)。

✧在实现插入的时候,首先要判断该顺序表是否为满,如为满则须重新分配空间(此时要注意:若顺序表是用数组来实现的,它不能随机分配空间);如不为满,则需判断要插入的位置是否合法(例如:如果一个线性表的元素只有10个,而要在第0个元素前插入或在第11个元素后插入就为不合法)。

其次要注意是前插还是后插,两者是有区别的;最后还要注意插入时各个数据元素移动的次序是从后面依次开始移动。

在实现删除的时候,首先要判断该顺序表是否为空,如为空则报错,如不为空,则需判断要删除的位置是否合法(例如:如果一个线性表的元素只有10个,而要删除第0个或第十一个元素就为不合法)。

其次还要注意删除时各个数据元素移动的次序是从前面依次开始移动。

3.实验内容:1、顺序表的建立2、顺序表的插入(输入插入位置i,插入元素)3、顺序表的删除(输入删除元素位置i)4、顺序表的打印5、顺序表的合并算法(选做)实验二单链表的插入和删除1.实验目的:了解单链表的基本概念、结构的定义及在单链表上的基本操作(插入、删除、查找以及线性表合并),通过在Turbo C实现以上操作更好的了解书本上的内容并体会线性表的两种存储结构的区别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础
必修
验证
第15周3,5-6
9
10
11
12
13
14
15
系主任:学院分管领导:
注:
1.本表由任课教师填写,课程所在学院统一于每学期第一周报送实验室,跨院部的另报教务处实验教学科一份。本表留存实验室。
2.实验类别:基础/技术(或专业)基础/专业/其他(含毕业论文和毕业设计的实验)。
3.实验类型:验证/创新/综合/设计/研究/演示。
4.实验要求:必修/选修。
5.备注:改进/新开。
2
基础
必修
验证
第3周3,5-6
2
链表基本操作
2
基础
必修
验证
第4周3,5-6
3
栈基本操作
2
基础
必修
验证
第5周3,5-6
4
队列基本操作
2
基础
必修
验证
第7周3,5-6
5
树基本操作
2
基础
必修
验证
第9周3,5-6
6
图基本操作
2
基础
必修
验证
第11周3,5-6
7
查找操作
2
基础
必修
验证
第13周3,5-6
8
排序操作
2
XXX大学实验教学授课计划表
2XXX~20XX学年第2学期
开课实验室名称
实验室
课程1
开课时间
实验总学时
16
课程类别
学科基础
主讲教师
学院
课程性质
必修
开课班级
实验人数
42
实验者类别
专业基础
序号
实验项目名称


实验
类别
实验
要求
实验
类型
实验计划时间
(到周节)
备注
1
顺序表基本操作
相关文档
最新文档