资源描述:
《数据结构与算法实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构与算法实验指导书山东师范大学数学科学学院实验大纲序号实验名称内容提要每组人数实验时数实验要求实验类别备注1抽象数据类型的实现复数的加、减、乘、除等运算13必做设计 2线性表的基本操作在线性表中插入、删除、查找结点13必做设计 3栈和队列及其应用利用栈或队列解决实际问题16必做设计 4树和二叉树的建立及应用二叉树的建立、插入、删除、周游19必做设计 5查找算法的实现利用检索算法进行查找16必做设计6内排序算法的实现用某个排序算法进行排序13必做设计7图的建立及应用图的建立等13必做设计8综合
2、实验学生管理、订票系统等13必做综合实验一:抽象数据类型的实现一、实验目的:1、了解抽象数据类型的表示和实现方法2、会用C语言中已存在的数据类型来说明新的结构。3、能用已实现的操作来组合新的操作。4、熟悉C语言的程序设计二、实验内容复数的加、减、乘、除等运算三、实验指导1、由于C语言中没有复数数据类型,所以要定义一个结构体类型主要成员是复数的实部和虚部。structcomplex{doublereal;doubleimage;};typedefinestructcomplexfcomplex;2、
3、对于复数的每一个运算用一个函数实现。fcomplexadd(fcomplexz1,fcomplexz2){fcomplexz;z.real=z1.real+z2.real;z.image=z1.image+z2.image;return(z);}fcomplexsub(fcomplexz1,fcomplexz2){fcomplexz;z.real=z1.real-z2.real;z.image=z1.image-z2.image;return(z);}fcomplexmul(fcomplexz1,
4、fcomplexz2){fcomplexz;z.real=z1.real*z2.real-z1.image*z2.image;z.image=z1.real*z2.image+z1.image*z2.real;return(z);}fcomplexdiv(fcomplexz1,fcomplexz2){fcomplexz;z.real=(z1.real*z2.real+z1.image*z2.image)/(z2.real*z2.real+z2.image*z2.image);z.image=(z1
5、.image*z2.real+z1.real*z2.image)/(z2.real*z2.real+z2.image*z2.image);return(z);}思考:如何实现求复数的模运算?3、将复数的定义和运算保存在一个名为COMPLEX.H的文件中。4、主函数主要实现运算的选择和数据的输入和输出。voidmain(){intn;fcomplexz,z1,z2;printf("请输入第一个复数的实部和虚部:");scanf("%lf,%lf",&z1.real,&z1.image);printf
6、("请输入第二个复数的实部和虚部:");scanf("%lf,%lf",&z2.real,&z2.image);printf("请选择要进行的运算(1-4)");printf("1.加法");printf("2.减法");printf("3.乘法");printf("4.除法");do{scanf("%d",&n);}while(n<1
7、
8、n>4);switch(n){case1:z=add(z1,z2);break;case2:z=sub(z1,z2);break;case3
9、:z=mul(z1,z2);break;case4:z=div(z1,z2);break;}printf("z=%lf+i%lf",z.real,z.image);}实验二线性表的基本操作一、实验目的:1、掌握线性表的两种存储结构2、掌握线性表在两种存储结构上建立、插入、删除、查找结点的基本操作3、会利用线性表解决实际问题二、实验内容设有n个人围坐在一个圆桌周围,从第s个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列。。。。。如此反复直到所有的人全部出列为止
10、。三、实验指导1.定义数据结构如下:#defineFALSE0#defineTRUE1typedefintDataType;/*定义元素类型为整型,也可定义为其他类型*/structNode;/*单链表结点类型*/typedefstructNode*PNode;/结点指针类型*/structNode/*单链表结点结构*/{DataTypeinfo;PNodelink;};typedefstructNode*LinkList;typedefLinkList*PLinkList;2.初