数据结构之复习提纲

线性表子系统

实验目的:

1、掌握线性表的定义;

2、掌握线性表的基本操作,如建立、查找、插入和删除等。

实验内容:

定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能:

(1)程序运行时,用尾插法创建一个含有3个student类型数据(这三个数据直接在程序中定义,不需要用户从键盘输入生成);

(2)逐个显示学生表中所有学生的相关信息;

(3)根据姓名进行查找,返回此学生的学号和成绩;

(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩);

(5)给定一个学生信息,插入到表中指定的位置;

(6)删除指定位置的学生记录;

(7)统计表中学生个数。

扫描二维码关注公众号,回复: 8538381 查看本文章

 

实验提示:

学生信息的定义:

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

****将这三个文件打包压缩上传,压缩文件名称为“学号姓名栈子系统”

发布了78 篇原创文章 · 获赞 81 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ping_lvy/article/details/103925093