顺序列表(栈/队列等)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 ...
随机推荐
- Flutter & Dart
Flutter & Dart https://www.dartlang.org/install https://flutter.dev/ https://flutter.dev/docs/ge ...
- Database testing test scenarios
1 check if correct data is getting saved is database upon successful page submit2 check values for c ...
- Java之StringBuffer使用方法
package basic; //StringBuffer的使用方法,用于保存频繁修改的字符串 public class StringBufferDemo { public static void m ...
- python之tkinter使用-简单对话框
# 简单对话框,包括字符.整数和浮点数 import tkinter as tk from tkinter import simpledialog def input_str(): r = simpl ...
- sorted 返回字典的所有键
- Django-website 程序案例系列-12 CSRF
django为用户实现防止跨站请求伪造的功能 需要配置settings.py: django.middleware.csrf.CsrfViewMiddleware 1. form表单提交 <f ...
- VMware配置Linux虚拟机访问外网
[虚拟机版本] 系统版本 : Centos 6.8 [连接方法] 网络模式:桥接模式 ps:本人比较喜欢用桥接,直接NAT也是可以的 [配置步骤] 1.配置网卡 #配置命令 vi /etc/sysco ...
- 【 Gym - 101138F 】GukiZ Height (数学)
BUPT2017 wintertraining(15) #4 C Gym - 101138F 题意 初始高度0,目标值h,第i天目标值会下降i,当前高度会改变a[i%n],求高度不小于目标值的最早的时 ...
- 13 Zabbix Item类型之Zabbix ODBC类型
点击返回:自学Zabbix之路 13 Zabbix Item类型之Zabbix ODBC类型 ODBC是C语言开发的.用于访问数据库的中间件接口 . zabbix支持查询任何ODBC支持的数据库.za ...
- 自学Linux Shell3.2-切换目录命令cd
点击返回 自学Linux命令行与Shell脚本之路 3.2-切换目录命令cd 当登录系统并获得shell命令提示符后,你通常位于自己的主目录中. 使用pwd命令验证: pwd命令以绝对路径的方式显示用 ...