云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 129317718743750000《算法与数据结构实验》实验指导书(1-3)

129317718743750000《算法与数据结构实验》实验指导书(1-3)

  • 62 次阅读
  • 3 次下载
  • 2026/1/27 11:12:16

实验一 线性表操作

一、 实验目的

1.掌握用 C语言调试程序的基本方法。 2. 掌握结构体类型的基本用法。

3.掌握线性表的基本运算,包括顺序表和链表的基本操作,如插入、删除等。

二、 实验内容

1.利用顺序表完成一个班级的一个学期的所有课程的管理:能够增加、删除、修改学生的成绩记录。 2.建立一个单链表,同时对该链表实现指定位置的插入、删除操作。

三、 实验操作(在空白处填上合适的代码)

(一)利用顺序表完成一个班级学生课程成绩的简单管理

1、预定义以及顺序表结构类型的定义

(1)#define ListSize //根据需要自己设定一个班级能够容纳的最大学生数 (2)typedef struct Stu

{

int num;

char name[10]; float wuli; float shuxue;

float yingyu; }STUDENT; typedef struct List {

stu[ListSize];

int length;

}LIST;

2、建立班级的学生信息

void listcreate(LIST *Li,int m) //m为该班级的实际人数 { int i;

Li->length=0;

for(i=0;i

printf(\printf(\

scanf(\输入第i个学生的学号

//存放学生的数组定义,静态分配空间 //记录班级实际学生个数

//存放班级学生信息的顺序表类型

//学生的学号 //学生的姓名 //物理成绩 //数学成绩

//英语成绩

//存放单个学生信息的结构体类型

} }

printf(\

scanf(\输入第i个学生的姓名 printf(\

scanf(\输入第i个学生的物理成绩 printf(\

scanf(\输入第i个学生的数学成绩 printf(\

scanf(\输入第i个学生的英语成绩 Li->length++; //学生人数加1

3、插入一个学生信息

int listinsert(LIST *Li,int i) {

int j; STUDENT e;

if( ) { }

printf(\无更多的存储空间!\\n\return 0;

//测试存储空间是否被占满

//将学生插入到班级Li的第i个位置。

if ( )

return 0; else {

//插入位置检验,如果错误就返回0退出程序。

printf(\请输入插入的学生信息:\

printf(\printf(\printf(\

printf(\printf(\

for(j= ;j>= ;j--) //从i位置到最后的元素依次往后移动 Li->stu[j+1]=Li->stu[j]; =e; Li->length++;

//学生e放入到i位置 //学生实际人数加1

return 1; } }

4、删除一个学生信息 int listdel(LIST *Li,int i) {

int j;

if ( ) {

return 0;

else

for(j= ;j< ;j++) //从删除位置后一个到最后的元素依次往前移动

Li->stu[j-1]=Li->stu[j];

Li->length--;

//删除第i个学生的信息

//删除位置检验,如果错误就返回0退出程序。

return 1; } }

5、显示所有学生信息 void listdisplay(LIST L) { int i;

printf(\班级学生信息如下:\\n\ for(i=0;i< ;i++)

printf(\学号]s[姓名].2f[物理成绩].2f[数学成绩].2f[英语成绩]\\n\}

6、编写主函数main,要求测试以上所编写的listcreat、listinsert、listdel和listdisplay 自己设计主函数完成。

(二)利用单链表完成一个班级学生课程成绩的简单管理

1、单链表结构体类型的定义

typedef struct Stu

{

int num;

//学生的学号 //学生的姓名 //物理成绩 //数学成绩

//英语成绩

//存放单个学生信息的结构体类型

char name[10]; float wuli; float shuxue;

float yingyu; }STUDENT;

typedef struct Snode {

STUDENT data; //结点的值

struct Snode *link; //指向下一个结点的地址 }SNODE;

2、建立班级学生信息

SNODE *listcreate(int n) {

int i;

SNODE *head,*p,*q;

if(n==0)

return NULL;

//如果要创建的是空表,返回NULL

//n为该班级的实际人数

head=p=(SNODE *)malloc(sizeof(SNODE));

//动态建立第一个结点,head指针指向

printf(\ printf(\ //输入第1个学生的学号 printf(\

//输入第1个学生的姓名

printf(\//输入第1个学生的物理成绩 printf(\输入第1个学生的数学成绩 printf(\输入第1个学生的英语成绩

for(i=1;i

q=(SNODE *)malloc(sizeof(SNODE));

printf(\ printf(\ printf(\ printf(\printf(\q->link=NULL;

}

}

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验一 线性表操作 一、 实验目的 1.掌握用 C语言调试程序的基本方法。 2. 掌握结构体类型的基本用法。 3.掌握线性表的基本运算,包括顺序表和链表的基本操作,如插入、删除等。 二、 实验内容 1.利用顺序表完成一个班级的一个学期的所有课程的管理:能够增加、删除、修改学生的成绩记录。 2.建立一个单链表,同时对该链表实现指定位置的插入、删除操作。 三、 实验操作(在空白处填上合适的代码) (一)利用顺序表完成一个班级学生课程成绩的简单管理 1、预定义以及顺序表结构类型的定义 (1)#define ListSize //根据需要自己设定一个班级能够容纳的最大学生数 (2)typedef str

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com