一、问题描述
1、顺序表的建立与操作实现
建立n个元素的顺序表(n的大小和表里数据自己确定),实现相关操作:输出、插入、删除、查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。
2、实际问题的解决(选做)
使用顺序表来实现约瑟夫问题。
二、基本要求
1、按照数据结构实验任务书,提前做好实验预习与准备工作。
2、做好选做题可加分。
3、严格按照数据结构实验报告模板和规范,及时完成实验报告。
4、在CSDN上建立个人博客,并在上面发文章形式上交作业。
三、概要设计
1、由于实验规定因此使用C++语言编写线性表。
2、算法的设计
①构造函数定义
②按位查找定义
伪代码:在顺序表中找到下标为i-1的位置。
③按值查找定义
伪代码:按从前到后顺序对顺序表中元素进行比较,如果比较后元素的值与所需要的值相等,则输出元素所在顺序表的位置。
④插入算法定义
伪代码:如果元素数量超过定义数量的最大值,抛出“上溢”异常。
如果元素插入位置错误,抛出“位置错误”异常。
将最后一个元素到元素i分别向后移一位。
顺序表长度加1.
⑤删除算法定义
伪代码:如果列表为空,抛出“下溢”异常。
如果删除位置错误,抛出“位置错误”异常。
通过按位查找找到需要删除的元素,并进行删除。
将下标为i到最后一位的元素依次向前移一位。
顺序表长度减1。
⑥遍历算法定义
伪代码:通过元素下标的连续性,用循环将元素的值按顺序输出。
3、抽象数据类型的设计
class Student //Student类类型数据定义
{
public:
Student(){length=0;}
Student(int a[],int n);
~Student(){}
int Length(){return length;}
int Get(int i);
int Locate(i