线性表子系统
实验目的:
1、掌握线性表的定义;
2、掌握线性表的基本操作,如建立、查找、插入和删除等。
实验内容:
定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能:
(1)程序运行时,用尾插法创建一个含有3个student类型数据(这三个数据直接在程序中定义,不需要用户从键盘输入生成);
(2)逐个显示学生表中所有学生的相关信息;
(3)根据姓名进行查找,返回此学生的学号和成绩;
(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩);
(5)给定一个学生信息,插入到表中指定的位置;
(6)删除指定位置的学生记录;
(7)统计表中学生个数。
实验提示:
学生信息的定义:
typedefstruct {
char no[2]; //2位学号
char name[20]; //姓名
int score; //成绩
}Student;
顺序表的定义
typedef struct {
Student *elem; //指向数据元素的基地址
int length; //线性表的当前长度
}SqList;
链表的定义:
typedefstruct LNode{
Student data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
实验要求:
(1)程序要添加适当的注释,程序的书写要采用缩进格式。
(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。
(3)程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。
(4)实验结果截图保存在word文档中,命名方式为学号+姓名实验结果.doc(如20180901张三实验结果.c)
(5)上传源程序和实验截图到泛雅平台的相应班级所在文件夹。顺序表的源程序保存为学号+姓名SqList.c(如20180901张三SqList.c),链表的源程序保存为学号+姓名LinkList.c(如20180901张三LinkList.c)。源程序和实验结果压缩为一个文件,按以下方式命名:学号姓名线性表系统.rar,如20180901张三线性表系统.rar。
(6)显示学生表中所有学生的相关信息的方式如下:
*************当前学生的基本信息(当前表长为3)*************
学号 姓名 成绩
01 张珊 89
02 李思 59.5
06 王武 100
************请跟进提示输入数字进行相应的操作****************
1.插入
2.删除
3.查找
4.取值
栈子系统
一、顺序栈
1.建一个顺序栈,保存学生的姓名信息
2.让用户依次输入5个学生姓名保存在栈中
3.将输入的学生姓名逆序打印出来
二、链栈
1.建一个链栈,保存学生的姓名信息
2.让用户依次输入5个学生姓名保存在栈中
3.输出经过2次出栈操作之后的栈顶元素信息
要求:
1.代码规范,关键代码有详细注释
2.代码具有健壮性,即当用户有非法输入时要给出正确提示,栈满时不能做入栈操作,栈空时不能做出栈操作
上交内容:
1.学号姓名Sqstack.c
2.学号姓名Linkstack.c
3.学号姓名运行结果.doc
****将这三个文件打包压缩上传,压缩文件名称为“学号姓名栈子系统”