数据结构实验讲义.ppt_第1页
数据结构实验讲义.ppt_第2页
数据结构实验讲义.ppt_第3页
数据结构实验讲义.ppt_第4页
数据结构实验讲义.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构和算法实验讲义,主持人:赵熙联系3360办公室:实验楼1-401楼电话3360 子邮件:实验1 C语言复习,教育目的和要求牙齿实验的目的有助于复习C语言的使用方法,特别是指针,结构体的内容。同时,为以后的各项实验准备教学的重点和难点指针、结构体、数组三种茄子数据类型的混合使用、实验预习检查内容、指针指向数组后,数组元素访问是什么形式?定义以下类型后,表达式a3.num的逻辑含义是什么?类型是什么?Struct student long num;Float score;Struct student * next;a5;元素:3的num数据域long类型,示例,#

2、 define null 0 struct student long num;Float score;Struct student * next;主要()struct student a,b,c,*头,* p;A.num=99101;A.score=89.5;B.num=99103;B.score=90;C.num=99107;C.score=85;/a,b,c变量赋值,head=p=a;=P=,确定第二个授课线性表、培训目的和要求数据结构中表的基本概念。您可以熟练地使用线性表的基本操作、插入、删除和查找操作,以及顺序存储结构和链接存储结构。链表操作和应用程序的各种熟练程度。教育的重点和困难的

3、线性表的基本任务在链接存储结构中实现。实验预习检查内容,完成以下步骤以了解main的结构# include # define maxlen 50 type def int elemtype;Struct datatype elemtype * elemInt lengthTypedef struct datatype sqlist,void create (sqlist *a) int i,n;n;a-elem=(elem type *)malloc(max len * sizeof(elem type);Printf(“创建顺序表n”);Printf(“输入元素数:”);scanf(“% d

4、”,=temp,(1)*(a-elem I)(2)*(a-elem a-length-1-I)(3)*(a-elem a-lenge footielem I);voidmain () sqlistb,* a;a=create(a);disp(a);invert(a);disp(a);是,单个链接表中第一个节点的指针为head,创建反向单个链接表的函数,即最后一个节点成为第一个节点,原始端的第二个节点成为第二个节点。实验内容和要求,需要4,7,13,剩馀老师几个茄子问题4,键盘输入学生信息(包括学号和成绩),使用学习号0作为结束标记,设置相应的线性表,并输出每个节点的数据。注:请考虑使用两种茄子

5、徐璐不同的存储结构实施顺序表和单链表。7,算法设计A和B两个单链表表达集的并集。提示:组合a和b。9.在单个链接列表B中,将未出现在单个链接列表A中的节点合并到单个链接列表A中。实验三个堆栈和队列,教学目的和要求了解堆栈和队列的特性,以便灵活应用。精通堆栈和相关队列中的各种任务和应用程序。教育的重点和难点堆栈及相关队列的多种操作和应用,实验预习检查内容,1,堆栈顶部指针是堆栈顶部元素地址或堆栈顶部前元素地址,确定标准?A :由程序员本身确定,在进行堆栈和堆栈操作时实现。2、实际应用程序采用普通队列或循环队列的依据是什么?a:在实际应用中是否存在假溢出问题。是,在单个链接表中放置N个字母,设计一

6、个算法,然后使用堆栈确定字符串是否是中央对称的。例如,abccba是中心对称字符串。(改进按标题填空节目)提示:首先,使用create()从用户输入的字符串函数创建相应的单个链接表,然后调用judge()。在Judge()函数中,将字符串放入堆栈,然后将堆栈中的字符与单个连接列表中的字符逐个进行比较。实验内容和要求,3,4必须做,5选择3,算术表达式中包含括号、方括号、大括号等三种茄子类型的括号,编写一个算法,判断其中括号是否匹配。4.给医院看病的过程主要是在病人先排队等的过程中重复两件事。(1)患者到达诊疗室后,病历护士,排队等候。(2)将下一个患者从队列中护士取出的病历。牙齿患者进入诊疗室

7、接受诊疗。5,设计程序,显示算术表达式作为运算符优先级计算的过程。基本要求:作为字符序列,在终端中输入语法精确、无变量的整数表达式。使用教科书表3.1中提供的运算符优先级关系计算算术4个混合运算表达式,并按照教科书的示例3_1说明计算过程中运算符堆栈、运算堆栈、输入字符和主要任务的变化过程。测试数据:3*(7-2)、实验内容和要求、讨论、问题3的后续步骤是否正确:实验4字符串、教育目的和要求字符串的基本概念、存储方法和主要运算。将字符串中的运算应用于文本编辑。教育的重点和困难部分字符串的操作,实验预习检查内容,字符串的顺序存储结构包括哪两种茄子存储方式?a:静态和动态分配的顺序存储结构。静态分

8、配:typedef struct char chmaxstrlenInt length sstring,动态分配:typedef struct char * chInt lengthHsring,范例,以下是以顺序储存方式储存字串的重新定位函数,将字串S1中以I字元开头的J字元(包含I字元)构成的子字串取代为S2字串。函数名称为replace(s1,I,j,s2)。例如,replace (ABCD ,1,3,xyz )将返回 xyzd 。(填空)提示:首先,从S1提取由位置I之前的所有字符组成的子字符串str1、位置I j-1和所有后续字符组成的子字符串str2,然后连接str1、s2和str

9、2以构建结果字符串。实验内容和要求,3,4必须,5选择3,使用顺序结构存储字符串构建函数索引(S1,S2),以指示S2是否为S1的子字符串。如果是,则返回主字符串中的相应位置。否则,返回-1。4,使用字符串的基本运算删除字符串S1的所有S2子字符串的算法编写提示:牙齿问题利用了3个问题的index()函数和子字符串函数循环删除。5,已知s=(XYZ) * ,t=(x z) * y 。使用连接、词组字符串、变位等将S转换成T。需要熟练掌握实验内容和要求、实验5数组和广义表、教育目的和数组存储的表达和实现。熟悉广义表的存储结构的特性。教育的重点和难点数组的存储表示和常用操作的实现,实验预习检查内容

10、,数组和一般线性表的区别?A:阵列结构固定数据元素同构,为什么阵列元素可以随机访问?A :可以通过地址计算公式获得任意元素地址。是,阵列R0.设置N-1的N个元素中,可以按顺序将多个0元素、一个算法设计、R中所有非0牙齿元素移动到R阵列的前面。提示:使用I指向0元素以外的下标,J通过R,如果Rj不等于0牙齿,则在I和J不等于0时与Rj交换RI。实验内容和要求,3,6必须做3,尝试设计算法,A0.将N-1的所有奇数向前移动偶数。需要时间复杂度O(n)而不增加存储空间。提示:I从左向右移动,指向A左侧的偶数,J从右向左移动,指向A右侧的奇数,并将Ai与Aj交换。循环,直到I大于或等于j。6,稀疏矩

11、阵运算符的基本要求:稀疏矩阵显示为“包含行逻辑链接信息”的三个组顺序表,实现两个矩阵的添加、减去和乘法。稀疏矩阵输入用树状结构表示,计算结果的矩阵作为常规数组列出。实验内容和要求,实验教学数,教育目的和要求1。掌握二叉树、二叉树排序数的概念和存储方法。2.确定二叉树巡回算法。3.善于编写创建实现树的各种运算的算法。教育的重点和难点二叉树巡回工作及应用,实验预习检查内容,1,下一个节目段的功能是什么?二叉树巡回一般用什么方法?A: 1,设置排序树2,优先级,中间顺序,后顺序,层次,示例,查找二叉树节点数和叶数,实验内容和要求,3,4需要执行3,3。编写程序以按层次实现二叉树遍历。4,写程序,遍历

12、二叉树顺序,打印层数。实验7度,教育目的和要求1。熟悉绘画的多种存储方法。确定遍历图的递归和郑智薰递归算法。3.了解图形的相关算法。教育的重点和难点图的建立和图的常用操作的实现,实验预习检查内容,以下程序的功能是什么?图的存储结构是什么?A: 1,图2设置,牙齿节目段中,图的存储结构确定是否连接了邻接表、示例、算法设计、无方向图G。连接后返回1。否则,返回0。实验内容和要求,2,3必须为2,编写节目,无取向度深度优先搜索。3、有邻接表存储的图片G。实现以下要求的算法:获得图中每个顶点的出图。计算出图为零的顶点数。寻找实验8,教育目的和要求1。寻找顺序、寻找二分法和寻找区块算法2。可以使用路线表

13、查找方法解决实际问题。寻找教育的重点和难点顺序,寻找两分钟的实施和应用,实验预习检查内容,寻找顺序,寻找两分钟的对象有什么不同?按顺序查找的对象可以是有序或无序的表。二进制祖怀对象必须是有序表。顺序祖怀,二进制祖怀对象的存储结构各是什么?响应:顺序祖怀对象可以是顺序表或链表。二进制查找中的对象可以是顺序表、示例语句,提供了顺序错误的表A中算法祖怀值为X的元素算法顺序。实验内容和要求,2必须做,3选择2,1。把握各种排序方法的基本思想和优缺点。2.了解各种排序方法标准的原则,并根据情况选择适当的排序方法。教育的重点和难点多种排序方法的实现和应用,实验预习检查内容,快速排序基本思想是什么?A :通过一次排序将要排序的记录分成两个单独的部分。如果一条记录的关键字小于另一条记录的关键字,则可以单独对牙齿两部分的记录进行排序,以获得整体顺序。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论