オーダーテーブル上の基本操作

ストレージ構造の基本的な操作を実現するために:初期化、作成、挿入、削除、検索、トラバース、逆位置、合併作業

 

書式#include <iostreamの>
の#include <cstdlib>
名前空間stdを使用。
テンプレート<型名T>
クラスSeqList
{
プライベート:
    T *データ;
    int型maxSizeの;
    最後のint;
    無効リサイズ(int型でNewSize)
    {
        T * newAry。
        (NewSizeパラメータ<= 0)であれば
        {
            CERR << "无效的数组大小" << ENDL。
            返します。
        }
        (NewSizeパラメータ= maxSizeの!)なら
        、{
            newAry =新しいT [NewSizeパラメータ]。
            IF(newAry == NULL)
            {
                CERR << "存储分配错误" << ENDL。
                出口(1)。


            T *のsrcptr =データ。
            T * desptr = newAry。
            一方、(N--)
            {
                * desptr ++ = * srcptr ++。
            }
            []データを削除します。
            データ= newAry。
            maxSizeの= NewSizeの。
        }
    }
公共:
    SeqList(INT SZ = 0)
    {
        maxSizeの= SZ。
        最後= SZ-1;
        データ=新しいT [maxSizeの]。
    }
    SeqList(SeqList <T>&L)
    {
        maxSizeの= L.maxSize。
        =最後L.last。
        データ=新しいT [maxSizeの]。
        IF(データ== NULL)
        {
            CERR << "存储分配失败" << ENDL。
            出口(1)。
        }
        ため(; iは最後の<; I = 0 int型私は++)
        {
            データを[I] = L.data [I]。
        }
    }
    〜SeqList()
    {
        []データを削除します。
    }

    INTサイズ()constは
    {
        maxSizeのを返します。
    }
    INT長さ()constは
    {
        1 +最後を返します。
    }
    int型の検索(CONST T&X)のconst
    {
        ため(INT i = 0; iは=最後の<; iは++)
        {
            IF(データ[I] == X)
            {
                リターンをI + 1。
            }
        }
        0を返します。
    }
    INT(iは整数)CONSTを見つけ
    {
        (I> = 1 && iは1 +最後= <)場合は
        {
            ; Iを返します
        }
        それ以外
            の戻り0;
    }
    BOOLのGetData(INT I、TおよびX)のconst
    {
        ((I)を見つけた場合)
        {
            X =データを[I-1];
            trueを返します。
        }
        他
        {
            falseを返します。
        }
    }
    ボイドSetDataメソッド(I、TおよびX INT)
    {
        IF(探し(I))
        {
            データ[I-1] = xと;
        }
    }
    BOOLのisEmpty()constは
    {
        最後==返す- 1。
    }
    BOOL IsFull()constは
    {
        最後の戻り== maxSizeの-1。
    }
    BOOLインサート(CONST T&xは、IをINT)
    {
        (I <1 ||をI>最後+ 2)の場合
        、{
            falseを返します。
        }
        (INT J =最後; J> = I-1; j--)用
        {
            DATA [J + 1] =データ[J]。
        }
        maxSizeの++。
        データ[I-1] = xと;
        最後++;

        trueを返します。
    }
    (I、TおよびX INT)取り外しBOOL
    {
        (最後== - 1)場合
        、{
           falseを返します。
        }
        もし((i)を見つけます!)
        {
            falseを返します。
        }
        のx =データ[I-1];
        用(int型J = I-1、J <最後あり、j ++)
        {
            データ[J] =データ[J + 1]。
        }
        last--。
        trueを返します。
    }

    ボイドソート()
    {
        (最後== - 1)であれば
        {
            返します。
        }
        のために(iは++; iは=最後<I = 0 INT)
        {
            (; J <=最後; J ++のint J = 0)ため
            、{
                IF(データ[i]が<データ[J])
                {
                    Tの一時。
                    TEMP =データ[I];
                    データ[I] =データ[J]。
                    データ[J] = TEMP。
                }
            }
        }
    }
    ボイド入力()
    {
        (最後== - 1)であれば
        {
            返します。
        }
        ため(; iは=最後の<; I = 0 int型私は++)
        {
            CIN >>データ[I];
        }
    }
    ボイド出力()
    {
        iがint型。
        (最後== - 1)であれば
        {
            返します。
        }
        ため(i = 0; iは++; iが=最後<)
        {
            COUT <<データ[I] <<」「。
        }
        COUT << ENDL。
    }
    ボイドMakeEmpty()
    {
        最後= -1。
    }
    ボイドリバース()
    {
        ため(INT i = 0; iは++; iが長さ()/ 2 <)
        {
            Tの温度を、
            TEMP =データ[I];
            データ[I] =データ[長さ() - I-1];
            データ[長さ() - I-1] = TEMP。
        }
    }
}。
INTのmain()
{
    int型M、N。
    cinを>>メートル。
    SeqList <整数>(M)。
    a.Input();
    INT X、Y。
    CIN >> X >> Y。
    a.Insert(X、Y)
    a.Output();
    int型のインデックス、NUM;
    cinを>>インデックス。
    a.Remove(インデックス、NUM)。
    a.Output();
    int型Z、F。
    cinを>> Z;
    F = a.Search(Z)。
    (F == 0)であれば
    {
        COUTが<< "見つかりません" << ENDL。
    }
    他
    {COUT << a.Search(Z)<< ENDL;}
    a.Reverse()。
    a.Output();
    int型ミリメートル;
    cinを>>ミリメートル。
    SeqList <整数>
    SeqList <整数> C(MM + M)。
    b.Input();
    以下のために(INT i = 0; iは++; iはa.Length()<)
    {
        int型の温度を、

        a.GetData(I + 1、TEMP)。
        c.SetData(I + 1、TEMP)。
    }
    ため(INT I = a.Length(); iは<(a.Length()+てb.length()); iは++)
    {
        int型の温度を、
        b.GetData(ia.Length()+ 1、TEMP)。
        c.SetData(I + 1、TEMP)。
    }
    c.Sort()。
    c.Output();
    0を返します。
}

 

おすすめ

転載: www.cnblogs.com/xbnl-bk-zm-2018/p/11354902.html