リニアテーブルLのi番目の要素からk個の要素を削除します.
1077 ワード
これはデータ構造の問題でしょう.この問題は授業中にクラスメートと私が討論しました.当時はリニアメーターを使っていませんでした.配列だけで解決しました.今はリニアメーターに変えてみます.まだよく分かりません.
コード:
コード:
#include
#include // #include
#define N 10
struct Sqlist
{
int *elem;
int length;
int listsize;
}L;
int DeleteK(struct Sqlist *L, int j, int k)
{
int i;
for(i = 0; i <= L->length-j-k; i++) //i=0, i=1, i
L->elem[i+j-1] = L->elem[j+k+i-1];
L->length -= k;
return 0;
}
int main()
{
int i, j, k;
L.listsize = N;
L.elem = (int *)malloc(sizeof(int) * L.listsize); // listsize (int)
printf(" :
");
for(i = 0; i < N ;i++)
scanf("%d", &L.elem[i]);
L.length = L.listsize;
printf("
:");
scanf("%d", &j);
printf("
:");
scanf("%d", &k);
DeleteK(&L, j, k);
for(i = 0; i < N-k; i++)
printf("%d ", L.elem[i]);
return 0;
}