实验一:线性表的基本操作实现及应用 1.0

本文介绍了使用C++实现线性表的基本操作,包括建立、输出、插入、删除和查找,并探讨了如何用线性表解决约瑟夫问题。在实验过程中,作者遇到并解决了模板使用、形参理解等问题,还展示了运行测试结果。尽管实验报告中尚未给出完整的约瑟夫问题解决方案,但作者对此进行了深入思考并计划在后续报告中分享。
摘要由CSDN通过智能技术生成

一、问题描述

   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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值