#include<iostream>
using namespace std; //ADT
template<class T>
class SeqList{
public:
//构造函数
SeqList() { this->length = ; this->data = NULL; }
SeqList(int length);
SeqList(int length,T array[]); //增
int push(T data);//入(栈/队),并返回新数组的长度
int unshift(T data);//类似于队列,从队头入,并返回新数组的长度 //删除
T pop();//出栈,并返回元素值
T shift();//出队,并返回该处元素值 //查
int Length(); //返回数组长度
bool includes(T data); //查询数组中是否存在该元素
int indexOf(T data);//返回该值的下标
T valueOf(int index);//返回下标对应的值 //(修)改
T replaceValueOf(int index);//按照下标替换值,并返回该处原来的值
int replaceIndexOf(T data);//按照 //排序
void sort();//默认升序排列
void sort(int TYPE);//0:升序,1逆序 //逆序
void reverse(); ~SeqList();
private:
T *data;
int length;
}; template<class T>
SeqList<T>::SeqList(int length){
if(length>-){
this->length = length;
this->data = new T[length];
}else{
throw "WARNING:Argument 'length' is invalid!";
}
} template<class T>
SeqList<T>::SeqList(int length,T array[]){
if(length>-){
this->length = length;
this->data = new T[length];
}else{
throw "WARNING:Argument 'length' is invalid!";
} for(int i=;i<this->length;i++){
this->data[i] = array[i];
} printf("constructor has completed!");
} //入(栈/队),并返回新数组的长度
template<class T>
int SeqList<T>::push(T data){
return ;
} //类似于队列,从队头入,并返回新数组的长度
template<class T>
int SeqList<T>::unshift(T data){
return ;
} //出栈,并返回元素值
template<class T>
T SeqList<T>::pop(){ } //出队,并返回该处元素值
template<class T>
T SeqList<T>::shift(){ } template<class T>
int SeqList<T>::Length(){ //返回数组长度
return this->length;
} template<class T>
bool SeqList<T>::includes(T data){ //查询数组中是否存在该元素
return true;
} template<class T>
int SeqList<T>::indexOf(T data){//返回该值的下标
return ;
} template<class T>
T SeqList<T>::valueOf(int index){//返回下标对应的值
return NULL;
}
//(修)改
template<class T>
T SeqList<T>::replaceValueOf(int index){//按照下标替换值,并返回该处原来的值
return NULL;
} template<class T>
int SeqList<T>::replaceIndexOf(T data){//按照
return ;
} //排序
template<class T>
void SeqList<T>::sort(){//默认升序排列
;
} template<class T>
void SeqList<T>::sort(int TYPE){//0:升序,1逆序
;
} //逆序
template<class T>
void SeqList<T>::reverse(){
;
} template<class T>
SeqList<T>::~SeqList(){
delete [] this->data;
} int main(){
SeqList<int>demo();
cout<<demo.Length();
return ;
}

顺序列表(栈/队列等)ADT[C++]的更多相关文章

  1. python数据结构-数组/列表/栈/队列及实现

    首先 我们要分清楚一些概念和他们之间的关系 数组(array)  表(list)  链表(linked list)  数组链表(array list)   队列(queue)  栈(stack) li ...

  2. java面向对象的栈 队列 优先级队列的比较

    栈 队列 有序队列数据结构的生命周期比那些数据库类型的结构(比如链表,树)要短得多.在程序操作执行期间他们才被创建,通常用他们去执行某项特殊的任务:当完成任务之后,他们就会被销毁.这三个数据结构还有一 ...

  3. YTU 3002: 出栈顺序(栈和队列)

    3002: 出栈顺序(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 80  解决: 20 题目描述 给出一个入栈序列,和一个出栈序列,判断该出栈序列是否正确. 输入 输入包含 ...

  4. java 集合 Connection 栈 队列 及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  5. Java笔记(六)列表和队列

    列表和队列 一)ArrayList 1.基本原理 ArrayList是一个泛型容器.内部会有一个数组elementData,一般会有预留空间 有一个整数记录实际的元素个数. private trans ...

  6. Java 容器之 Connection栈队列及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  7. 数据结构 栈&队列

    2-4 依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( ) 删除,移动头指针: 增加,移动尾指针: 删除a,b ,队头c 2-3 在一个链队列中,fron ...

  8. 栈&队列&并查集&哈希表(julyedu网课整理)

    date: 2018-11-25 08:31:30 updated: 2018-11-25 08:31:30 栈&队列&并查集&哈希表(julyedu网课整理) 栈和队列 1. ...

  9. Leetcode栈&队列

    Leetcode栈&队列 232.用栈实现队列 题干: 思路: 栈是FILO,队列是FIFO,所以如果要用栈实现队列,目的就是要栈实现一个FIFO的特性. 具体实现方法可以理解为,准备两个栈, ...

  10. 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例

    1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...

随机推荐

  1. link & auto cards

    link & auto cards a link to card link https://docs.embed.ly/docs/cards DD WX <blockquote clas ...

  2. 详细且透彻的分析PCA原理

    前两天面试问到了PCA,感觉讲得不是很透彻,这里再次详细写一下. 首先定义如下变量的含义: X:Rn*m,n个样本m个属性,对于第i个样本xi:R1*m. W:Rm*k,k个正交的单位正交的列向量组成 ...

  3. ubuntu 安装 postgresql

    安装环境: Ubuntu 10.04-desktop-i386 PostgreSQL 8.4 1. 安装PostgreSQL 输入如下命令 sudo apt-get install postgresq ...

  4. day28 property 装饰器

    方法属性装饰器 本质上来说就是将方法的执行括号去掉,这样将一个方法掩饰成了一个变量名字,变成了类似属性的东西内置装饰器函数,只在面向对象中使用 from math import pi class Cr ...

  5. 洛谷P3085 [USACO13OPEN]阴和阳Yin and Yang(点分治,树上差分)

    洛谷题目传送门 闲话 偶然翻到一道没有题解的淀粉质,想证明一下自己是真的弱 然而ZSYC(字符串组合)早就切了 然后证明成功了,WA到怀疑人生,只好借着ZSY的代码拍,拍了几万组就出来了... 思路 ...

  6. Centos7下安装python3

    1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...

  7. android + eclipse + 后台静默安装(一看就会)

      首先要说到三个类. import android.content.pm.IPackageInstallObserver; import android.content.pm.IPackageIns ...

  8. 最小割求法&&可行边和必须边

    最小割的可行边与必须边 就是在残量网络上跑tarjan 可行边: 满流并且残量网络上不能存在入点到出点的路径 必须边: 满流并且残量网络上入点能从源点到达,出点能到汇点. 任意一种最小割求法: 跑一边 ...

  9. bug8 eclipse项目导入到myeclipse时 Target runtime com.genuitec.runtime.generic

    1.新导入的工程,出问题很大可能是jdk的版本问题导致,检查一下,发现jdk果然不一致,修改了jdk版本,但异常没有消除 2.网上查询下解决方案,原来在工程目录下的settings,有个文件也需要修改 ...

  10. Linux替换指定列的字符串(awk 命令)

    假设有文件test.txt,想把test.txt文件第三列含有的good替换为bye,并把替换后的文件保存为test_bye.txt,只需要如下命令. test.txt go go good go m ...