#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. 数据结构 栈&amp;队列

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

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

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

  9. python 列表之队列

    列表实现队列操作(FIFO),可以使用标准库里的 collections.deque,deque是double-ended quene的缩写,双端队列的意思,它可以实现从队列头部快速增加和取出对象. ...

  10. C++实现一个简单的双栈队列

    双栈队列的原理是用两个栈结构模拟一个队列, 一个栈A模拟队尾, 入队的元素全部压入此栈, 另一个栈B模拟队首, 出队时将栈A的元素弹入栈B, 将栈B的栈顶元素弹出 此结构类似汉诺塔, 非常经典, 这里 ...

随机推荐

  1. SQL-语句实现九九乘法表

    下面用while 和 if 条件写的SQL语句的四种九九乘法表  sql语句实现--x 左下角九九乘法表 DECLARE @I INT ,@J INT,@S VARCHAR(100) SET @I=1 ...

  2. Android STL PORT

    ndk中包含了stl对应的库,在$(NKD_HOME)/sources/cxx-stl/stlport/stlport 有关Android NDK的C++ STL开发相关总结如下: 从Android ...

  3. Eclipse+ADT的环境搭建

    Index: . Java环境变量的设置 . Android环境变量的设置 1.Java环境变量的设置 A.属性名称:JAVA_HOME 属性值:C:\Program Files\Java\jdk1. ...

  4. WPF Template模版之寻找失落的控件【三】

    “井水不犯河水”常用来形容两个组织之间界限分明.互不相干,LogicTree与控件内部这颗小树之间就保持着这种关系.换句话说,如果UI元素树上有个X:Name=“TextBox1”的控件,某个控件内部 ...

  5. python中如何将生成等差数列和等比数列

    在python库numpy 中提供了函数linspace和logspace函数用于生产等差数列和等比数列.     1.linspace函数生成等差数列 def linspace(start, sto ...

  6. Java-GenricServlet

    public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable { priva ...

  7. Ex 2_27 矩阵A的平方是A自乘后的乘积,即AA..._第三次作业

  8. PHP7.27: connect mysql 5.7 using new mysqli

    <!doctype html> <html> <head> <meta name="viewport" content="wid ...

  9. Java SE 枚举的基本用法

    出于对自己基础的稳打,期末考试后依旧对SE部分进行复习 枚举的基本用法 public enum Season { SPRING,SUMMER,AUTUMN,WINTER } public class ...

  10. C/S模式与B/S

    网络程序开发的两种计算模式--C/S模式与B/S模式.两种各有千秋,用于不同场合. C/S适用于专人使用,安全性要求较高的系统: B/S适用于交互性比较频繁的场合,容易被人们所接受,倍受用户和软件开发 ...