リニアテーブル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; }