顺序列表(栈/队列等)ADT[C++]
#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++]的更多相关文章
- python数据结构-数组/列表/栈/队列及实现
首先 我们要分清楚一些概念和他们之间的关系 数组(array) 表(list) 链表(linked list) 数组链表(array list) 队列(queue) 栈(stack) li ...
- java面向对象的栈 队列 优先级队列的比较
栈 队列 有序队列数据结构的生命周期比那些数据库类型的结构(比如链表,树)要短得多.在程序操作执行期间他们才被创建,通常用他们去执行某项特殊的任务:当完成任务之后,他们就会被销毁.这三个数据结构还有一 ...
- YTU 3002: 出栈顺序(栈和队列)
3002: 出栈顺序(栈和队列) 时间限制: 1 Sec 内存限制: 128 MB 提交: 80 解决: 20 题目描述 给出一个入栈序列,和一个出栈序列,判断该出栈序列是否正确. 输入 输入包含 ...
- java 集合 Connection 栈 队列 及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- Java笔记(六)列表和队列
列表和队列 一)ArrayList 1.基本原理 ArrayList是一个泛型容器.内部会有一个数组elementData,一般会有预留空间 有一个整数记录实际的元素个数. private trans ...
- Java 容器之 Connection栈队列及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- 数据结构 栈&队列
2-4 依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( ) 删除,移动头指针: 增加,移动尾指针: 删除a,b ,队头c 2-3 在一个链队列中,fron ...
- 栈&队列&并查集&哈希表(julyedu网课整理)
date: 2018-11-25 08:31:30 updated: 2018-11-25 08:31:30 栈&队列&并查集&哈希表(julyedu网课整理) 栈和队列 1. ...
- Leetcode栈&队列
Leetcode栈&队列 232.用栈实现队列 题干: 思路: 栈是FILO,队列是FIFO,所以如果要用栈实现队列,目的就是要栈实现一个FIFO的特性. 具体实现方法可以理解为,准备两个栈, ...
- 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例
1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...
随机推荐
- 如何禁止复制电脑文件到U盘、禁止U盘拷贝文件
在公司局域网中,有时候我们处于保护电脑文件安全和商业机密的需要,会禁止局域网电脑使用U盘.禁用USB存储设备:或者禁止通过U盘复制电脑文件.禁止U盘拷贝公司电脑文件.那么,怎样实现呢?本文提供两种方法 ...
- python之工作举例:通过复制NC文件来造数据
# 通过对NC文件复制来造数据 import os, shutil # 遍历的根目录 root_dir = "D:\\test_data\\DISASTER\\" # 获取NC文件 ...
- Centos7 ping 未知的名称或服务 DNS 配置问题
通常解析不了域名一般都是DNS域名配置有问题 对接口添加dns信息:编辑/etc/sysconfig/network-scripts/ifcfg-ethxxxxxxx,x可能是其他数字,但一般是ifc ...
- docker --Docker微容器Alpine Linux
Alpine Linux的官网: http://www.alpinelinux.org/ #官方 https://pkgs.alpinelinux.org/packages #官方提供的安装包 ...
- Enum 扩展
项目中,用到枚举值,并且增加中英文描述. 一般的[Description]属性,无法满足中英文,所以进行了简单扩展. 继承DescriptionAttribute,增加了英文描述description ...
- NOIP 2018 游记(退役了!)
一片空白 在霉的不能再霉的18年11月,Noip2018上,倒霉的我也是贼有意思,感冒加身,D2发烧,数组开小…我还能说什么MMP,身体和考试能力真的很重要. ……(省略无数字的心理活动,有空补上~) ...
- Get The Treasury HDU - 3642(扫描线求三维面积交。。体积交)
题意: ...就是求体积交... 解析: 把每一层z抽出来,计算面积交, 然后加起来即可..! 去看一下 二维面积交的代码 再看看这个三维面积交的代码.. down函数里 你发现了什么规律!!! 参考 ...
- HDU 6162 Ch’s gift
Mr. Cui is working off-campus and he misses his girl friend very much. After a whole night tossing a ...
- 19+ JavaScript 常用的简写技巧
博主说:对于任何基于 JavaScript 的开发人员来说,这绝对是一篇必读的文章,乃提升开发效率之神器也. 正文 js 1. 三元运算符 当你想用一行代码来写if...else语句的时候,使用三元操 ...
- Android中用文件初始化sqlite 数据库(二)
博 androidsqlite启动时数据库初始化 方法1已经讲述了一种初始化数据库的方法 它的数据库初始化不是用sql语句,而是用一个现成的sqlite的二进制文件进行直接copy到Android系 ...