データ構造の一つ:シーケンシャルストレージ構造の線状

  • 順次記憶構造の線状

/ 1順次記憶構造のリニア形を達成するために、2つのCライブラリは、参照する必要がある /
の#include <stdio.hに>
する#include <STDLIB.H>

/ メモリアドレス空間、マクロの空間100へ2.アプリケーション /
の#define MAXSIZE 100

/ 構造は、線形配列表を定義3. /
typedefのデータ型をint型;
typedefは構造体{
データ型=データ*;
int型の長さ;
} SeqList。

/ 4文の方法は、ユーザーが任意のキーを押すことを可能にする /
無効のwaitFor(){
;のprintf( "\ nは、任意のキーを押し... \ N-")
GETCHARを();
}

/ 文に記載の方法は、ユーザが作成し続けるかどうかを決定する /
INT go_on(){
チャーchoceを、
(1)一方、{
IF(選択== 'Y' ||選択== 'Y')
BREAK;
IF(選択== ' N '||選択==' N- ')
BREAK;
出口(-1);
}
リターン(-1);
}

/ 6直鎖状配列表空の構成 /
空隙Init_SeqList(SeqList L){
L - >データ=(データ型
)はmalloc(はsizeof(データ型));
(!L - >データ)IF {
のprintf(「\ n型メモリ割り当て障害。) "\ N-;
}
L - >長さ= 0。

/ 7.線形空間配列表の入力位置とユーザ選択素子の素子せる /
空隙Insert_SeqList(SeqList L *、I int型、データ型X){
int型I、のフラグ、insert_flag = 1;
一方、{(1)
のprintf(「入力してください要素の挿入位置: ");
scanfの(" %のD "およびI);
のprintf("挿入する要素を入力してください");
scanfの(" %のD」、およびX)。

                            if(insert_flag = 1){
                                    printf("插入成功。\n");
                          else{
                                 printf("插入失败。\n");
                            flag = go_on();
            }

/ 8.線形空間挿入配列テーブル要素値 /
挿入(SeqList int型L){
データ型
P、Q、
IF(L - >データ== MAXSIZE){
のprintf( "\ n型テーブルがいっぱいである、\ N-挿入することができないが。");
リターン(-1);
IFが(<1 || I> I L - >長さ+ 1){
のprintf( "\ nは、挿入された位置誤差は、N- \挿入することはできません");
リターン(0);
(INT = Pのために(L - >データ[L - >長さ- 1。]); P> = Q; - {P)
、(P + 1)= P
}
Q = X;
L - >長++;
リターン(1)。

/ 9出力して表示する /
{)(INTメイン
SeqList L;
チャーの選択、
フラグのint = 1;
{行う
のprintf( "\ N-を");
のprintf(「-----------順序テーブル( )----------------------- \ N-ダイナミックアレイを達成する");
のprintf(" 1つのインサート要素を----------------------。 -------------------- \ N- ");
のprintf(" ---------------------- ------------------------------------ \ N- ");
のprintf(" [] 1を選択してください/ 2/3/4/0:「);
チョイス= GETCHAR();
swicth {(選択)
場合、」1' :
挿入(&L);
BREAK;
}
のwaitFor();
}一方(のフラグ= 1);
戻り0;
}

おすすめ

転載: blog.51cto.com/dreamerhan/2452650