zoukankan      html  css  js  c++  java
  • 顺序列表(栈/队列等)ADT[C++]

    #include<iostream>
    using namespace std;
    
    //ADT
    template<class T>
    class SeqList{
        public:
            //构造函数 
            SeqList() { this->length = 0; 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>-1){
            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>-1){
            this->length = length;
            this->data = new T[length];
        }else{
            throw "WARNING:Argument 'length' is invalid!";
        }
        
        for(int i=0;i<this->length;i++){
            this->data[i] = array[i];
        }
        
        printf("constructor has completed!");    
    } 
    
    //入(栈/队),并返回新数组的长度 
    template<class T>
    int SeqList<T>::push(T data){
        return 0;    
    }
    
    //类似于队列,从队头入,并返回新数组的长度     
    template<class T>
    int SeqList<T>::unshift(T data){
        return 0;
    }
    
    //出栈,并返回元素值 
    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 0;
    }
    
    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 0;
    }
    
    //排序
    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(2);
        cout<<demo.Length();    
        return 0;
    }
  • 相关阅读:
    WindowsServer 2016激活
    selenium浏览器复用与原理分析
    react脚手架: 配置代理
    网络请求方式
    Java: Excel导入导出
    react 组件通信方式
    react: reactrouterdom
    react: 高阶函数及函数柯里化
    react: 事件处理
    react: 生命周期
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/7576786.html
Copyright © 2011-2022 走看看