栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2、 顺序表的算法设计 (设计实验)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2、 顺序表的算法设计 (设计实验)

以文件夹lab2_2中的程序文件为基础,按照下列要求设计2个算法,输出的参考样张如下所示。请把答案代码直接补充在源文件中。

2.1 设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为O(n);
2.2 实现顺序表逆置的算法。

#include            //引用输入输出流库函数的头文件
using namespace std;

const int MaxSize=10;    //10只是示例性的数据,可以根据实际问题具体定义
class SeqList
{
public:
   SeqList( ){length=0;}       //无参构造函数,创建一个空表
   SeqList(int a[ ], int n);       //有参构造函数
   void Insert(int i, int x);   //在线性表中第i个位置插入值为x的元素
   int Delete(int i);        //删除线性表的第i个元素
   int Locate(int x);       //按值查找,求线性表中值为x的元素序号
   void PrintList( );      //遍历线性表,按序号依次输出各元素
   void Adjust();
   void Reverse();
private:
   int data[MaxSize];      //存放数据元素的数组
   int length;            //线性表的长度
};

SeqList::SeqList(int a[ ], int n)
{
      if (n>MaxSize) throw "参数非法";
      for (int i=0; i=MaxSize) throw "上溢";
      if (i<1 || i>length+1) throw "位置非法";
      for (int j=length; j>=i; j--)
        data[j]=data[j-1];   //注意第j个元素存在数组下标为j-1处
      data[i-1]=x;
      length++;
}

int SeqList::Delete(int i)
{
      if (length==0) throw "下溢";
      if (i<1 || i>length) throw "位置非法";
      int x=data[i-1];
      for (int j=i; j 

ps:自己的作业,随便做做,完全搞不懂链表是什么鬼东西

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/291455.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号