1
第一部分 基础篇
第一章 线性表
线性表是数据结构中最简单、最常用的一种线性结构,也是学习数据结构全部内容的基
础,其掌握的好坏直接影响着后继知识的学习。本章通过四个模拟项目来学习线性表的顺序
和链式存储结构,首先通过使用有关数组的操作实现学生成绩管理,其次通过使用有关线性
链表的操作实现考试报名管理,然后通过使用循环链表的操作实现约瑟夫生者死者游戏。
1.1 学生成绩管理
1.1.1 项目简介
学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。本项目是
对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入学生数据;输出学生数据;
学生数据查询;添加学生数据;修改学生数据;删除学生数据。
1.1.2 设计思路
本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除等功能,可以首
先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函
数以验证各个函数功能并得出运行结果。
1.1.3 数据结构
本项目的数据是一组学生的成绩信息,每条学生的成绩信息由学号、姓名和成绩组成,
这组学生的成绩信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存
储。
顺序表是线性表的顺序存储结构,是指用一组连续的内存单元依次存放线性表的数据元
素。在顺序存储结构下,逻辑关系相邻的两个元素在物理位置上也相邻,这是顺序表的特点。
本项目可以采用顺序表的线性表顺序存储结构。
若一个数据元素仅占一个存储单元,则其存储方式参见图 1-1。