数据结构实验讲义课件.ppt
《数据结构实验讲义课件.ppt》由会员分享,可在线阅读,更多相关《数据结构实验讲义课件.ppt(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 前一页 休息实验一 C 语言复习l 教学目的与要求 本实验的目的是帮助大家复习C 语言的使用方法,特别是指针、结构体的内容,同时也为以后的各个实验做准备 l 教学的重点与难点 指针、结构体、数组三种数据类型的混合使用 前一页 休息实验预习检查内容l 指针指向数组后,数组元素的访问有哪些形式?l 在下列类型定义后,表达式a3.num 的逻辑含义是什么?类型是什么?struct studentlong num;float score;struct student*next;a5;答:3 号元素的num 数据域long 类型 前一页 休息例题#define NULL 0struct student
2、long num;float score;struct student*next;main()struct student a,b,c,*head,*p;a.num=99101;a.score=89.5;b.num=99103;b.score=90;c.num=99107;c.score=85;/a、b、c 变量赋值head=&a;a.next=&b;/a 的后续为bb.next=&c;c.next=NULL;p=head;do printf(“%ld%5.1fn”,p-num,p-score);/*输出学号和成绩*/p=p-next;while();答:p!=NULL 前一页 休息l 9、设
3、计一个可进行复数运算的演示程序。要求:实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示。l 10、设计一个可进行有理数运算的演示程序。要求:实现两个有理数相加、相减、相乘以及求分子或求分母的运算。实验内容及要求 前一页 休息l 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据。l 要求:用input 函数输入10个学生数据,用average 函数求总平
4、均分;用max 函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。实验内容及要求 前一页 休息讨论l 指出下列程序段的错误:l struct studentl long num;l float score;l struct student*next;l a,b,c,*p;l a.next=&b;l b.next=&c;l p=a;l while(p)l printf(“%ld%5.2f”,p-num,p-score);l P+;l 答:增加:c.next=NULL;p=a;=P=&a;P+;=P=p-next;前一页 休息第二讲 线性表l 教学目的与要求 掌握数据结构中表的
5、基本概念。熟练掌握线性表的基本操作,插入、删除、查找等运算在顺序存储结构和链接存储结构上的实现。熟练掌握链表的各种操作和应用。l 教学的重点与难点线性表的基本操作在链接存储结构上的实现。前一页 休息实验预习检查内容l 完成下列程序,指出main 的结构l#include l#define MaxLen 50l typedef int elemtype;struct datatype elemtype*elem;int length;typedef struct datatype sqlist;前一页 休息l void create(sqlist*a)l l int i,n;l a-elem=(
6、elemtype*)malloc(MaxLen*sizeof(elemtype);l printf(“创建一个顺序表n”);l printf(“输入元素个数:”);l scanf(“%d,&a-length);l for(i=0;ilength;i+)l l printf(“输入第%d 个元素值:”,i);l scanf(“%d,a-elem+i);l l 前一页 休息l void invert(sqlist*a)l l int m=a-length/2,I;l elemtype temp;l for(I=0;Ielem+i)=;l=temp;l l(1)*(a-elem+i)(2)*(a-e
7、lem+a-length-1-i)(3)*(a-elem+a-length-1-i)前一页 休息l Void disp(sqlist*a)l int I;l for(i=0;ielem+i);l 前一页 休息l void main()l l sqlist b,*a;l a=&b;l create(a);l disp(a);l invert(a);l disp(a);l 前一页 休息例题l 有一个单链表的第一个结点指针为head,编写一个函数将该单链表逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点。前一页 休息实验内容及要求l 4、7、13必做,其余老师选做几题 l 4、键
8、盘输入学生信息(包括学号和成绩),学号为0作为结束标志,建立其对应的线性表并输出各结点中的数据。l 注:试以顺序表和单链表两种不同的存储结构实现。前一页 休息l 7、设计一个算法求A 和B 两个单链表表示的集合的并集。l 提示:将A 和B 合并。l 9、用头插法把单链表b 中在单链表a中未出现的结点合并到单链表a中。前一页 休息实验三 栈和队列 l 教学目的与要求1.了解栈和队列的特性,以便灵活应用。2.熟练掌握栈和有关队列的各种操作和应用。l 教学的重点与难点 栈和有关队列的各种操作和应用 前一页 休息实验预习检查内容l 1、栈顶指针是栈顶元素的地址或是栈顶前一元素的地址,确定标准是什么?答
9、:由程序员自己确定,在压栈和弹栈操作时来实现2、在实际应用中,是采用一般队列还是循环队列的依据是什么?答:实际应用中,是否存在假溢出问题。前一页 休息例题l 设单链表中存放n 个字符,设计一个算法,使用栈判断该字符串是否中心对称,如abccba即为中心对称字符串.(根据题目填空完善程序)l 提示:先用create()函数从用户输入的字符串创建相应的单链表,然后调用judge()函数判断是否为中心对称字符串。在 judge()函数中先将字符串进栈,然后将栈中的字符逐个与单链表中字符进行比较。前一页 休息实验内容及要求l 3、4必做,5选做l 3、设一个算术表达式中包含圆括号、方括号和花括号三种类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 讲义 课件
限制150内