您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页数据结构上机实验一1

数据结构上机实验一1

来源:华佗小知识
数据结构上机实验编程指南

为了更好地帮助同学们做好数据结构实验,在此给出数据结构上机编程的一般思路和程序的基本框架结构。具体程序结构按先后顺序可分为以下3个部分:

1、预定义常量及类型

对于相关的常量与类型(如状态类型)进行定义,如: #define OK 1 #define ERROR 0 #define OVERFLOW –2 #define TRUE 1 #define FALSE 0 typedef int Status; 2、相关数据结构类型定义

此部分包括对所使用的数据结构给出其类型定义,及基本操作函数定义。(具体内容可参见实验一)

3、主调程序的定义

此部分给出相关的主调程序,在此程序中定义相关数据结构变量,并通过调用其操作函数,实现设计目的。(具体内容可参见实验一)

实验一 线性表实验及编程基础训练

一、实验目的

1.回顾C程序设计的基本知识。

2.熟练掌握用C实现数组定义及其基本操作。

3.回顾并加强使用C实现结构体类型定义与使用的能力,为后续编程打基础。 4.回顾如何利用C实现自定义函数的定义与调用,为数据结构编程打基础。 5.通过上机实践加强利用指针解决实际应用应用问题的能力。 二、实验要求

1.实验前做好充分准备,包括C程序设计所学内容,事先预习好本次实验内容。 2.实验时记录实验结果,按要求完成各题。

3.实验结束后,给出实验总结与分析并及时给出本次实验的实验报告。 三、实验题目

本次实验给出的选定题目如下表所示。

实验名称 学 时 实验内容 (1)数组的定义及其相关操作算法的实现; 线性表 2 (2)结构体的定义及其相关算法的实现; (3)函数的定义与调用; (4)指针的定义与使用; 实验要求 实验 类型 必做 设计性 必做 设计性 选做 综合性 选做 综合性

四、实验内容与要求

1、实验题目一:数组的定义及其相关操作算法的实现; 要求:编程实现数组定义及排序操作、插入操作、删除操作、取元素操作、输出操作等,并对其进行验证。

2、实验题目二:结构体的定义及其相关算法的实现; 要求:复习并要求熟练掌握结构体的类型定义及其初始化操作,实现结构体类型数组的定义、结构体类型变量的读取操作、输入操作等,并对其进行验证。

3、实验题目三:函数的定义与调用---自行复习回忆知识

要求:编程实现函数定义及其调用操作,具体重点复习并掌握后续要用到的嵌套调用、递归函数等知识。

4、实验题目四:指针的定义与使用---自行复习回忆知识

要求:复习并要求熟练掌握掌握指针的定义与使用。如果基础较好同学可以把1、2作业用链表完成。 五、实验程序示例

1、数组的定义及其相关操作算法的实现 例:定点插入 #include main()

{int a[1000],i,n,weizhi,m,j;

printf(\"请输入要输入的数据个数:\"); scanf(\"%d\ for(i=0;i<=n-1;i++) scanf(\"%d\

printf(\"请输入要插入的数据:\"); scanf(\"%d\

printf(\"请输入要插入的位置:\"); scanf(\"%d\ for(j=n-1;j>=weizhi;j--) a[j+1]=a[j]; a[weizhi]=m; printf(\"\\n\");

for(i=0;i<=n;i++) printf(\"%d \}

2、结构体的定义及其相关算法的实现;

例如:打印学生成绩表,每个学生的信息包括姓名、学号及高等数学、英语、线性代数、物理等几门课程的成绩。

要求:输入5个学生的相关信息,并在屏幕上输出。 #include struct student { int num; char name[20]; int xx; int wl; int en; int gs; }a[5];

void main() { int i; printf(\"请输入同学的学号、姓名和成绩(依次输入线形代数、物理、英语和高等数学)\\n\"); for(i=0;i<5;i++) { printf(\"请输入第%d位同学的信息:\\n\ scanf(\"%d%s %d%d%d%d\ } printf(\"\\n\"); for(i=0;i<5;i++) { printf(\"%d %s %d %d %d %d\\n\

} }

3、函数的定义与调用;

例如:判断输入的整数(>0)是否为素数。

要求:判断素数的函数单独写,在main函数中调用判断素数的函数,根据返回值1或0在屏幕上打印输入数“是素数”和“不是素数”的结论。 #include void main()

{ int susu(int n); int n;

scanf(\"%d\ if(susu(n)) printf(\"%d是素数\\n\ else printf(\"%d不是素数\\n\}

int susu(int n) { int flag=1,i; for(i=2;i4、指针的定义与使用;

例如:用指针的方法编写一个函数,交换从键盘读入的两个整型数a,b。

要求:交换两个数的函数单独写,在main函数中调用该函数,验证是否确实完成了交换。 #include void main()

{ void change(int *x,int *y); int a,b; int *p,*q; scanf(\"%d %d\ p=&a; q=&b; printf(\"%d %d\\n\ change(p,q); printf(\"%d %d\\n\}

void change(int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务