1 / 39
文档名称:

数据结构实验.ppt

格式:ppt   大小:1,639KB   页数:39页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验.ppt

上传人:文库新人 2021/11/26 文件大小:1.60 MB

下载得到文件列表

数据结构实验.ppt

相关文档

文档介绍

文档介绍:数据结构实验
第一页,课件共39页
实验一 C语言复****br/>教学目的与要求
本实验的目的是帮助大家复****C语言的使用方法,特别是指针、结构体的内容,同时也为以后的各个实验做准备
教学的重点与难点
指针、结构体、数组三种数据类型的混合使用
第二页,课件共39页
实验预****检查内容
指针指向数组后,数组元素的访问有哪些形式?
在下列类型定义后,表达式a[3].num的逻辑含义是什么?类型是什么?
struct student
{long num;
float score;
struct student *next;
}a[5];
答:3号元素的num数据域
 long类型
第三页,课件共39页
例题
#define NULL 0
struct student
{long num;
float score;
struct student *next;
};
main ()
{ struct student a,b,c,*head,*p;
=99101;=;
=99103;=90;
=99107;=85;
//a 、b、 c变量赋值
head=&a;
=&b;//a的后续为b
=&c;
=NULL;
p=head;
do
{printf(“%ld%\n”,p->num,p->score );/*输出学号和成绩*/
p=p->next;
}while( );
}
答:p!=NULL
第四页,课件共39页
9、设计一个可进行复数运算的演示程序。要求:实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示。
10、设计一个可进行有理数运算的演示程序。要求:实现两个有理数相加、相减、相乘以及求分子或求分母的运算。
实验内容及要求
第五页,课件共39页
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据。
要求:用input函数输入10个学生数据,用average 函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。
实验内容及要求
第六页,课件共39页
讨论
指出下列程序段的错误:
struct student
{long num;
float score;
struct student *next;
}a,b,c,*p;
=&b;
=&c;
p=a;
while (p)
{printf(“%ld%”,p->num,p->score);
P++;
}
答:
增加:=NULL;
p=a; =>P=&a;
P++; =>P=p->next;
第七页,课件共39页
第二讲 线性表
教学目的与要求
掌握数据结构中表的基本概念。
熟练掌握线性表的基本操作,插入、删除、查找等运算在顺序存储结构和链接存储结构上的实现。
熟练掌握链表的各种操作和应用。
教学的重点与难点
线性表的基本操作在链接存储结构上的实现。
第八页,课件共39页
实验预****检查内容
完成下列程序,指出main的结构
#include <>
#define MaxLen 50
typedef int elemtype;
struct datatype
{elemtype *elem;
int length;
}
typedef struct datatype sqlist ;
第九页,课件共39页
void create (sqlist *a)
{
int i,n;
a->elem=(elemtype *)malloc(MaxLen*sizeof(elemtype));
printf(“创建一个顺序表\n”);
printf(“输入元素个数:”);
scanf(“%d",&a->length);
for (i=0;i<a->length;i++)
{
printf(“输入第%d个元素值:”,i);
scanf(“%d",a->elem+i);
}
}
第十页,课件共39页