/***********************************************顺表类SeqList的使用范例
************************************************/
#include <iostream>
using namespace std; const int MaxSize = 100;            //100只是示例性的数据,根据实际问题具体定义
template <class DataType>          //定义模板类SeqList
class SeqList
{public:SeqList( );                     //无参构造函数,建立空的顺序表SeqList(DataType a[ ], int n);      //有参构造函数,建立长度为n的顺序表~SeqList( );                    //析构函数int Length( );                   //求线性表的长度int Empety();DataType Get(int i);              //按位查找,查找第i个元素的值int Locate(DataType x );          //按值查找,查找值为x的元素序号void Insert(int i, DataType x);      //插入操作,在第i个位置插入值为x的元素DataType Delete(int i);            //删除操作,删除第i个元素void PrintList( );                 //遍历操作,按序号依次输出各元素
private:DataType data[MaxSize];          //存放数据元素的数组int length;                       //线性表的长度
};template<class DataType>
SeqList<DataType> :: ~SeqList()
{}template <class DataType>
SeqList<DataType> :: SeqList()
{length = 0;
}template <class DataType>
int SeqList<DataType> :: Empety()
{if(length == 0)return 1;elsereturn 0;
}template <class DataType>
int SeqList<DataType> :: Length()
{return length;
}template <class DataType>
SeqList<DataType> :: SeqList(DataType a[ ], int n)
{if (n > MaxSize) throw "参数非法";for (int i = 0; i < n; i++)  data[i] = a[i];length = n;
}template <class DataType>
void SeqList<DataType> :: PrintList( )
{for (int i = 0; i < length; i++)cout << data[i];                   //依次输出线性表的元素值
}template <class DataType>
int SeqList<DataType> :: Locate(DataType x)
{for (int i = 0; i < length; i++)if (data[i] == x) return i+1;        //返回其序号i+1return 0;                         //退出循环,说明查找失败
}template <class DataType>
DataType SeqList<DataType> :: Get(int i)
{if (i < 1 && i > length) throw "查找位置非法";else return data[i - 1];
}template <class DataType>
DataType SeqList<DataType> :: Delete(int i)
{if (length == 0) throw "下溢";if (i < 1 || i > length) throw "位置";int x = data[i - 1];                  //取出位置i的元素for (int j = i; j < length; j++)data[j - 1] = data[j];           //此处j已经是元素所在的数组下标length--;return x;
}template <class DataType>
void SeqList<DataType> :: Insert(int i, DataType x)
{if (length >= 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 main( )
{int r[5] = {1, 2, 3, 4, 5}, i, x;             SeqList<int> L{r, 5};                  //建立具有5个元素的顺序表cout << "当前线性表的数据为:";L.PrintList( );                        //输出当前线性表1 2 3 4 5try {L.Insert(2, 8);                        //在第2个位置插入值为8的元素cout << endl << "执行插入操作后数据为:";L.PrintList( );                        //输出插入后的线性表1 8 2 3 4 5cout << endl;}catch(char* str){cout << str << "插入操作错误!" << endl;}cout << "当前线性表的长度为:" << L.Length( );    //输出线性表的长度6cout << endl;cout << "请输入查找的元素值:";cin >> x;i = L.Locate(x);if (0 == i) cout << "查找失败" << endl;else cout << "元素" << x << "的位置为:" << i << endl;          try{cout << "请输入查找第几个元素值:";cin >> i;cout << "第" << i << "个元素值是" << L.Get(i) << endl;}catch(char* str){cout << "线性表中没有该元素" << endl;} try {cout << "请输入要删除第几个元素:";cin >> i;x = L.Delete(i);                              //删除第i个元素cout << "删除的元素是" << x <<",删除后数据为:";L.PrintList( );                           //输出删除后的线性表}catch(char* str){cout << "删除错误!" << endl;} return 0;
}

顺表类SeqList的使用范例(C++)相关推荐

  1. 【数据结构】使用Java实现顺序表类 SeqList

    目录 线性表介绍 顺序表介绍 Java->顺序表API Java->顺序表代码 使用顺序表示例 线性表介绍 数据结构中的线性存储结构分为两大类:顺序存储和链式存储,顺序存储对应的是顺序表, ...

  2. 线性表的顺序存储结构之顺序表类的实现_Java

    在上一篇博文--线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构--顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放 ...

  3. 顺序表类的声明java_顺序表实现解约瑟夫环_Java

    今天我们来使用顺序表类求解约瑟夫(Josephus)环问题. 首先我闲来描述下约瑟夫环问题:古代某法官要裁决n个犯人的死刑,他有一条荒唐的法律,将犯人站成一个圆圈,从第s个人开始数起,每数到第d个犯人 ...

  4. 顺序表——基本概念、顺序表类实现、基本操作

    顺序表 线性表的顺序存储结构 1.数组是实现顺序存储结构的基础. 特点:地址连续确定,容量固定,随机存取T(n) = O(1) 一维数组占用一块内存空间,数组的存储单元个数成为数组容量,也成为数字长度 ...

  5. 16 BasicHashTable基本哈希表类(三)——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  6. java设计一个顺序表类的成员函数_顺序表代码讲解以及实现

    用C语言编写一个有关顺序表的程序代码 创建一个顺序表,其数据元素类型为整型: 在该顺序表中插入数据(#include #include #define MaxSize 50 typedef char ...

  7. 映射表类(CMap)

    映射表类(CMap)是MFC集合类中的一个模板类,也称作为"字典".CMap是把唯一关键码映射到值的字典收集类,使用CMap可以构造一个关键字和元素值映射的集合类.一旦在映射中插入 ...

  8. 数据结构入门——顺序表(SeqList)详解(初始化、增、删、查、改)

    SeqList顺序表 1. 线性表介绍 2. 顺序表 2.1 顺序表的结构介绍 2.2 顺序表的定义和接口声明--`SeqList.h` 2.3 顺序表接口函数的具体实现--`SeqList.c` 3 ...

  9. 烈焰mysql数据库_烈焰数据库(MYSQL)的各表类诠释

    烈焰数据库(MYSQL)的各表类诠释 以下为烈焰私服数据库各个表的详解 account_data 二进制数据组,不要随意删除或改动 account_forced_permissions 未用到 ach ...

最新文章

  1. 【VS实践】如何在vs中自动添加注释
  2. 2020-08-20 将数据上传到 S3 或从S3下载
  3. 《数学之美》第20章 不要把鸡蛋都放到一个篮子里--谈谈最大熵模型
  4. LinkedList实现原理
  5. MATLAB实战系列(四)-导入txt文件技巧大全
  6. CentOS6.4下安装TeamViewer8
  7. ie7浏览器传输中文的问题
  8. IT公司刻板印象合集:程序员都秃头,商务个个是人精
  9. 人工智能指用计算机,人工智能测试题..doc
  10. NLP—3.文本特征工程及工具使用举例
  11. 组装台式计算机的部件,组装台式电脑的配置清单
  12. Word文档恢复,2大方案教你找回没有保存或者被删除的数据
  13. 【C语言经典100题】乒乓球队的比赛
  14. “点亮心灯祝福世界·清明” 活动暨“生与死的艺术沙龙清明特场”启动
  15. 关于pingpp(招行一网通)-混淆
  16. c语言题目翻译,c语言专业词汇表达带翻译
  17. 太高效了,全靠这款可视化报表工具,实用
  18. promethuesa监控 告警(二)
  19. 【spark】Cluster deploy mode is not applicable to Spark shells
  20. 线下门店互动营销产品浅析

热门文章

  1. 无线射频专题《射频合规,2.4GHz WIFI测试指标详解》
  2. oracle中fm990.9,国内主要FM电台频率数据.doc
  3. 阿里云落地北美 誓与亚马逊一争高下?
  4. c语言套题答案 中国铁道出版社,《C语言程序设计验指导与习题集》练习题的参考答案(中国铁道出版社).doc...
  5. 学历高 机器学习_高中学历,我接到 BAT 机器学习工程师offer
  6. 仿闲鱼 拍摄小视频 videorecoder
  7. 俄罗斯取消封禁 加密聊天软件Telegram
  8. KMP算法 -- 字符串模式匹配算法
  9. 中兴王炜:模块化数据中心将替代传统数据中心
  10. C#开发Word控件