する#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 ;
}