シーケンシャルストレージ構造とストレージ構造の線状

する#include <stdio.hに> 
する#include <iostreamの> 
する#include < malloc関数 .H>
 の#define最大10個
 使用して 名前空間STD; 
typedefの構造体{
     チャーデータ[最大];
     int型の長さ; 
} sqlist、

ボイド initlist(sqlist *&L)    / / リニアテーブルの初期化*&変更さL対処することができる代表
{ 
    L =(sqlistの*)のmallocはsizeof (sqlistを)); 
    L - >長さ= 0 ; 
} 

ボイド easyinsert(sqlistの*のL)
{ 
    チャー C =getchar関数();
    もし(1->長さ> 最大)
    { 
        返します
    } 

    L - >データ[1->長++] =のC。
} 

ボイドディスプレイ(sqlist 1)
{ 
    ためint型 i = 0 ; iはl.lengthを<; iは++ 
    { 
        COUT << l.data [I]。
    } 
    COUT << ENDL。
} 
int型LENG(sqlist 1)
{ 
    COUT << l.length << ENDL。
    リターンl.length。
} 
ボイド getelem(sqlist L、INT  N)
{
    もし(N < 1 || N> l.length)
    { 
        返します
    } 
    チャーE。
    E = l.data N- [ 1 ]。
    coutの <<電子<< てendl; 
} 
ボイド weizhi(sqlistリットル、チャーC)
{ 
    ためint型 i = 0 ; iはl.length <I ++の
    { 
        もし、(C == l.data [I])
        { 
            COUT << iは+ 1 << " \ nを" ; 
        } 
    } 
}
ボイドcharu(sqlist * L、チャー C、int型N)
{ 
    場合(N < 1 || N> 1-> 長さ)
    { 
        返します
    } 
    L - >長++ int型私は、
    以下のための(I = 1->長さ、I> N; i-- 
    { 
        L - >データ[I- 1 ] = 1->データ[I- 2 ]。
    } 
    L - >データ[I- 1 ] =のC。
    
} 
ボイド shanchu(sqlist * 1、int型のI)
{ 
    場合(iが< 1 || I> 1->長さ)
    { 
        返します
    } 
    L - > length-- INT J = I- 1、J <1->長あり、j ++ 
    { 
        L - >データ[J] = 1->データ[J + 1 ]。
    } 
} 

int型のmain()
{ 
    sqlistの *のL; 
    initlist(L)。
    easyinsert(L)。
    easyinsert(L)。
    easyinsert(L)。
    easyinsert(L)。
    easyinsert(L)。
    ディスプレイ( * L)。
    LENG( * L)。
    getelem( L *、4); 
    weizhi( * L、' C ' ); 
    Charu(L、' G '5。); 
    表示( * L); 
    shanchu(L、3。); 
    表示( * L); 
}

テーブルの残りの部分に変更がある場合には、リニアポインタと呼ばれ、*&Lで初期化する必要があります

理由:https://www.cnblogs.com/xiang-little/p/5840809.html

ボイドinitlist(sqlist *&L) // 初期化*&代表リニア形はLアドレスに変更することができる 
 { 
    L =(sqlist *)はmalloc(はsizeof (sqlistを)); 
    L->長さ= 0 ; 
}

おすすめ

転載: www.cnblogs.com/BananaMan/p/11443910.html
おすすめ