データ構造の1つ:リニア・テーブルのシーケンス・ストレージ構造
2089 ワード
/2.メモリにアドレス空間を申請し、空間サイズが100のマクロ/#define MAXSIZE 100
/3.線形順序テーブルの構造体/typedef int DataTypeを定義する.typedef struct{DataType = *data;int length;}SeqList;
/4.ユーザーに任意のキーを押させる方法を宣言する/void waitFor(){printf(「任意のキーを押してください...」);getchar();}
/5.ユーザが継続するか否かを判定する方法を宣言する/int go_on(){char choce;while(1){if(choice == 'Y' || choice == 'y')break;if(choice == 'N' || choice == 'n')break;exit (-1);}return (-1);}
/6.線形空順序テーブル/void Init_を作成するSeqList(SeqList L){L->data=(Datatype)malloc(sizeof(Datatype);if(!L->data){printf("メモリ割り当て失敗");}L -> length = 0;
/7.線形空順序表入力ユーザーに要素の位置と要素/void Insert_を選択させるSeqList(SeqList*L,int i,DataType x){int i,flag,insert_flag=1;while(1){printf("要素を挿入する場所を入力してください:");scanf("%d",&i);printf("挿入する要素を入力してください");scanf("%d",&x);
if(insert_flag = 1){
printf(" 。
");
else{
printf(" 。
");
flag = go_on();
}
/8.線形空順テーブル挿入要素値/int Insert(SeqList L){DataType p,q;if(L->data==MAXSIZE){printf("テーブルがいっぱいで挿入できない");return (-1);if(i<1‖i>L->length+1){printf("挿入位置が間違っていて挿入できません.");return (0);for(int p = (L -> data[L -> length - 1]); p >= q; p--){(p + 1 ) = p}q = x;L -> length++;return (1);
/9.出力して表示する/int main(){SeqList L;char choice;int flag=1;do{printf(");printf("--------シーケンステーブル(動的配列実装)----------------");printf("----------------1.要素を挿入する------------------------------------");printf("-------------------------------------------------------------------------------------------------------------------------------------------------------");printf("[]1/2/3/0:");choice=getchar();swicth(choice){case '1':Insert(&L);break;}waitFor();}while(flag = 1);return 0;}