C言語データ構造のリニアテーブルの基本操作
リニア・テーブルの基本操作
内容:
(1)シーケンステーブルの操作
整数要素のセットを入力し、線形テーブルの順序格納構造を確立します.このリニア・テーブルの遍歴を実現します.この順序テーブルで要素を検索し、検索に成功した場合は検索に失敗します.指定した要素を削除または挿入します.値の増加順の2つの順序テーブルを作成し、値の増加順の順序テーブルに結合します.
(2)シングルチェーンテーブルの操作
整数要素のセットを入力し、エンドプラグ法を使用してヘッダノード付きの単一チェーンテーブルを作成します.このリニア・テーブルの遍歴を実現します.単一チェーンテーブルのi番目の要素の前に整数を挿入します.単一チェーンテーブルのi番目の要素を削除し、その値をパラメータで返します.値の増加順に並べられた2つの単一チェーンテーブルを作成し、値の減少順に並べられた単一チェーンテーブルに結合します.もとの利用を求める
のストレージスペース
内容:
(1)シーケンステーブルの操作
整数要素のセットを入力し、線形テーブルの順序格納構造を確立します.このリニア・テーブルの遍歴を実現します.この順序テーブルで要素を検索し、検索に成功した場合は検索に失敗します.指定した要素を削除または挿入します.値の増加順の2つの順序テーブルを作成し、値の増加順の順序テーブルに結合します.
(2)シングルチェーンテーブルの操作
整数要素のセットを入力し、エンドプラグ法を使用してヘッダノード付きの単一チェーンテーブルを作成します.このリニア・テーブルの遍歴を実現します.単一チェーンテーブルのi番目の要素の前に整数を挿入します.単一チェーンテーブルのi番目の要素を削除し、その値をパラメータで返します.値の増加順に並べられた2つの単一チェーンテーブルを作成し、値の減少順に並べられた単一チェーンテーブルに結合します.もとの利用を求める
#include
#include
#define MAX 20
#define LISTINCREMENT 10
typedef struct{
int *elem;
int length;
int listsize;
}SqList;
void CreatList(SqList &L)
{//
L.elem=(int*)malloc(MAX *sizeof(int));
if(!L.elem)
return;//exit(0)
L.listsize=MAX;
printf(" :");
scanf("%d",&L.length);
printf(" %d :",L.length);
for(int i=0;iL.length+1) return; //i 1<=i<=ListLength(L)+1
int *p,*q;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;
*q=e;
/* i p=&L.elem[L.length-1]
p ,p>=q pL.length)) return 0;//i 1<=i<=ListLength(L)+1
else{
int *p,*q;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p)*(p-1)=*p;//
--L.length;
printf(" ");
}
return 0;
}
int main(){
SqList L;
CreatList(L);
Traverse(L);
LocateElem(L,1);
ListInsert(L);// ListInsert(L,3,8);
Traverse(L);
ListDelete(L);
Traverse(L);
return 0;
}
のストレージスペース