#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. python之文件系统操作(os模块)

    文件系统操作(os模块) import os file_name = "D:\\test_data\\1.txt" file_name_2 = "D:\\test_dat ...

  2. BZOJ3862Little Devil I——树链剖分+线段树

    题目大意: 给一棵树,每条边可能是黑色或白色(起始都是白色),有三种操作: 1.将u到v路径上所有边颜色翻转(黑->白,白->黑) 2.将只有一个点在u到v路径上的边颜色翻转 3.查询u到 ...

  3. Studio启动的时候报错 Could not install Gradle distribution from

    安装了studio以后,直接点击[Start]报如下错,绝对不是网络的问题. Could not install Gradle distribution from 'https://services. ...

  4. virtualenv 模块

    作用 安装虚拟环境 下载组件 pip3 install virtualenv 使用 命令行创建使用 """ 创建虚拟环境 """ virtu ...

  5. 更新本地git仓库的远程地址(remote地址)

    如果远程仓库的地址更新了,我们本地仓库就需要更新remote地址, 可以通过git remote -v或者cat .git/config查看通信方式及远程地址 更新远程地址的方式有两种: 第一种方式: ...

  6. JNative 传递参数bug

    下载JNative网址:http://sourceforge.net/projects/jnative/files/jnative/ 下载JNative版本:JNative_1.4RC3_bin.zi ...

  7. Python--Django学习笔记2

    本篇介绍Django中的Model层. 首先介绍sqlite3,这是在当前版本中Django默认使用的数据库,sqlite也是Android中所使用的数据库. 接着介绍最最最常见的MySQL数据库如何 ...

  8. Spring Cloud(三) --- hystrix

    Hystrix 说到Hystrix就得先说一下产生的背景等等,那就是雪崩效应. 在微服务中肯定存在多个服务层之间的调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服 ...

  9. 百度地图API 循环向 marker 添加 click事件

    使用百度地图API,循环向marker添加InfoWindow时,所有的marker点击弹出的inforwindow为最后一个添加的infowindow,百度后,使用js闭包解决此问题,直接贴代码: ...

  10. OpenCv练习

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream&g ...