顺序表,是数据结构中按顺序方式存储的线性表,又称向量。具有方便检索的特点。以下,是笔者学习是基于C++实现的顺序表代码,贴上来当网页笔记用。

#include <iostream>
using namespace std;
template <class T>
class List{void clear();//释放顺序表 bool isEmpty();//判断顺序表是否为空 bool append(const T value);//在顺序表后添加value值 bool insert(const int p,const T value);//在p位置插入value值 bool del(const int p);//删除在p位置的值 bool getValue(const int p,T& value);//将p位置的值赋予value bool setValue(const int p,const T value);//将p位置的值设置为value bool getPos(int &p,const T value);//将值为value的位置赋予p
};
template <class T>
class arrList:public List<T> {private:T *aList; //存储顺序表的实例 int maxSize;//顺序表的最大值 int curLen;//顺序表的实际长度 int position;//顺序表的当前处理位置 public:arrList(const int size){//初始化顺序表 maxSize=size;aList=new T[maxSize];curLen=position=0;}~arrList(){//消除表实例 delete [] aList;}void clear(){//清空顺序表,成为空表 delete [] aList;curLen=position=0;aList=new T[maxSize];}bool isEmpty(){/*判断顺序表是否为空若curLen为空,即当前实际长度为空,即为空表 */if(curLen==0){return true;}else{return false;}} int length(){//返回顺序表的当前长度 return curLen; }bool append(const T value){/*在顺序表末插入value实际长度+1 */aList[curLen]=value;curLen++;}bool insert(const int p,const T value){int i;if(curLen>=maxSize){/*判断顺序表是否已满*/cout<<"The list is overflow"<<endl;return false;}if(p<0||p>curLen){/*判断请求合理性*/cout<<"Insertion point is illegal"<<endl;return false;}for(i=curLen;i>p;i--){/*将p后的数据后移*/aList[i]=aList[i-1];}/*将值置于p,curLen位置加1*/aList[p]=value;curLen++;return true;}bool del(const int p){int i;/*判断当前表是否为空,为空不删除*/if(curLen<=0){cout<<"No element to del"<<endl;return false;}/*判断请求合理性*/if(p<0||p>curLen-1){cout<<"deletion is illegal"<<endl;return false;}/*将位置p后的值前移,覆盖*/ for(i=p;i<curLen-1;i++){aList[i]=aList[i+1];}curLen--;return true;}bool getValue(const int p,T& value){//判断请求合理性 if(p<0||p>curLen-1){cout<<"No such element"<<endl;return false;}value=aList[p];}bool setValue(const int p,const T value){//判断请求合理性 if(p<0||p>curLen-1){cout<<"No such element"<<endl;return false;}aList[p]=value;}bool getPos(int &p,const T value){int i;for(i=0;i<curLen;i++){if(value==aList[i]){p=i;return true;}return false;}}
};

转载于:https://www.cnblogs.com/Seanit/p/3420654.html

基于C++的顺序表的实现相关推荐

  1. 数据结构之基于顺序表的插入排序

    基于顺序表的插入排序(常规插入排序,二分插入排序,希尔排序) 这三种的都是插入排序算法的时间复杂度基本相似,但由于希尔排序不同于其他排序方式的思想,所以其时间复杂度会有所不同. 常规插入排序:O(n2 ...

  2. 基于顺序表的图书管理系统(C语言)

    Visual Studio编译环境 功能: 0.退出.             1.基于顺序存储结构的图书信息表的创建和输出.             2.基于顺序存储结构的图书信息表的新图书的入库. ...

  3. 基于Python的数据结构实验——顺序表与单链表建立与操作(附详细代码和注释)

    1.创建一个名为 prac02_01.py 的文件,在其中编写一个顺序表的类,该类必须包含顺 序表的定义及基本操作,并通过以下步骤测试基本操作的实现是否正确,给出运行结果. (1)初始化一个顺序表 S ...

  4. 数据结构与算法笔记(二)—— 顺序表

    一.顺序表的形式 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等.一组数据中包含的元素个数可能发生变化(可以增加或删除元 ...

  5. 顺序表查找+折半查找(二级)

    我们讲了各种数据 结构之后,比如讲了线性表了,讲了栈和队列,讲了树和二叉树,讲了图之后呢,我们最后还有两个专题,一个叫查找,一个叫排序,我们先看看查找,查找包括哪些内容啊,第一个线性表的查找,数组或者 ...

  6. 算法与数据结构(part4)--顺序表

    学习笔记,仅供参考,有错必纠 文章目录 算法与数据结构–基于python 顺序表 什么是线性表 什么是顺序表 顺序表的基本形式 顺序表的结构与实现 顺序表的结构 顺序表的两种基本实现方式 扩容策略 顺 ...

  7. 线性表、顺序表以及ArrayList、Iterable、Collection、List中重要的方法

    线性表基本概念 线性表(linear list)是n个具有相同特性的数据元素的有限序列. 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表.链表.栈.队列.字符串 线性表在逻辑上是线性结构 ...

  8. 8.基本数据结构-顺序表和链表

    一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计 ...

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

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

  10. 数据结构顺序表基本流程

    生活中很多事物是有顺序关系的,如班级座位从前到后是按排的顺序,从左到右是按列的顺序,可以很方便的定位到某一个位置,但如果座位是散乱的,就很难定位. 在程序中,经常需要将一组(通常是同为某个类型的)数据 ...

最新文章

  1. malloc一次性最大能申请多大内存空间
  2. 《Fabric 云存储的电子健康病历系统》(2)病历结构体 Records
  3. MySql项目中使用的小窍门
  4. react的一些思考
  5. java虚拟机栈基本内容
  6. LaTeX常见文件类型
  7. Git——单人操作及多人协同操作
  8. Skype For Asterisk 的安装及使用
  9. 6月8日云栖精选夜读:mac下eclipse配置tomcat无法启动问题
  10. 全频音箱与分频音箱各有什么优缺点
  11. 【luogu3372】线段树 1 模板
  12. 弎问笔录30 之 狐狸和兔子(二)
  13. DIGITS使用步骤
  14. Android MTP 模式 驱动无法安装解决方案
  15. ERP管理web后台_数字化、Axure高保真智能化工厂管理系统原型(erp生产管理、仓库管理、采购管理、设备能源管理、计划管理)
  16. 计算机重新启动后打印机脱机,重新启动计算机后打印机脱机怎么办
  17. 微信小程序中 三元表达式
  18. (转)创业靠撸不靠抽
  19. Tekton笔记(三)之catalog kaniko
  20. 吉利车机安装第三方软件教程,手机修改dns完整操作教程

热门文章

  1. Android TextView 45°倾斜效果
  2. 撸了一个疫苗接种行程管理系统,爽!
  3. Spring 最常用的 7 大类注解,史上最强整理!
  4. 记一次生产环境存储过程优化的过程(42秒--0.06秒)
  5. Linux 容器 vs 虚拟机 —— 谁更胜一筹
  6. 我妈劝我找份稳定的工作
  7. pcie routing
  8. 表格 滚动条 (tbody部分滚动)
  9. Codeforces 964B(贪心)
  10. JavaScript 字符串(String)对象