C言語データ構造のリニアテーブルの基本操作


リニア・テーブルの基本操作
内容:
(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;
}

のストレージスペース