天天看點

資料結構C語言實作系列[1]——線性表

資料結構C語言實作系列[1]——線性表

#include  < stdio.h >

資料結構C語言實作系列[1]——線性表

#include  < stdlib.h >

資料結構C語言實作系列[1]——線性表

typedef  int  elemType;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

struct  List ... {

資料結構C語言實作系列[1]——線性表

    elemType *list;

資料結構C語言實作系列[1]——線性表

    int size;

資料結構C語言實作系列[1]——線性表

    int maxSize;

資料結構C語言實作系列[1]——線性表

} ;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  againMalloc( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {    

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    elemType *p = realloc(L->list, 2 * L->maxSize * sizeof(elemType));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(!p)...{    

資料結構C語言實作系列[1]——線性表

        printf("存儲空間配置設定失敗! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->list = p;    

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->maxSize = 2 * L->maxSize;    

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  initList( struct  List  * L,  int  ms)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(ms <= 0)...{

資料結構C語言實作系列[1]——線性表

        printf("MaxSize非法! ");

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        exit(1);    

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->maxSize = ms;    

資料結構C語言實作系列[1]——線性表

    L->size = 0;

資料結構C語言實作系列[1]——線性表

    L->list = malloc(ms * sizeof(elemType));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(!L->list)...{

資料結構C語言實作系列[1]——線性表

        printf("空間配置設定失敗! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  clearList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->list != NULL)...{

資料結構C語言實作系列[1]——線性表

        free(L->list);

資料結構C語言實作系列[1]——線性表

        L->list = 0;

資料結構C語言實作系列[1]——線性表

        L->size = L->maxSize = 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  sizeList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    return L->size;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  emptyList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->size ==0)...{

資料結構C語言實作系列[1]——線性表

        return 1;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    else...{

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType getElem( struct  List  * L,  int  pos)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos < 1 || pos > L->size)...{    

資料結構C語言實作系列[1]——線性表

        printf("元素序号越界! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return L->list[pos - 1];    

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  traverseList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < L->size; i++)...{

資料結構C語言實作系列[1]——線性表

        printf("%d ", L ->list[i]);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf(" "); 

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  findList( struct  List  * L, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < L->size; i++)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(L->list[i] == x)...{

資料結構C語言實作系列[1]——線性表

            return i;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return -1;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  updatePosList( struct  List  * L,  int  pos, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos < 1 || pos > L->size)...{    

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    L->list[pos - 1] = x;

資料結構C語言實作系列[1]——線性表

    return 1;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  inserFirstList( struct  List  * L, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->size == L->maxSize)...{

資料結構C語言實作系列[1]——線性表

        againMalloc(L);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = L->size - 1; i >= 0; i--)...{

資料結構C語言實作系列[1]——線性表

        L->list[i + 1] = L ->list[i];

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    L->list[0] = x;

資料結構C語言實作系列[1]——線性表

    L->size ++;

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  insertLastList( struct  List  * L, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->size == L ->maxSize)...{    

資料結構C語言實作系列[1]——線性表

        againMalloc(L);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->list[L->size] = x;    

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->size++;    

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  insertPosList( struct  List  * L,  int  pos, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos < 1 || pos > L->size + 1)...{    

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->size == L->maxSize)...{    

資料結構C語言實作系列[1]——線性表

        againMalloc(L);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = L->size - 1; i >= pos - 1; i--)...{

資料結構C語言實作系列[1]——線性表

        L->list[i + 1] = L->list[i];

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    L->list[pos - 1] = x;

資料結構C語言實作系列[1]——線性表

    L->size++;

資料結構C語言實作系列[1]——線性表

    return 1;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  insertOrderList( struct  List  * L, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i, j;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L->size == L->maxSize)...{

資料結構C語言實作系列[1]——線性表

        againMalloc(L);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < L->size; i++)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(x < L->list[i])...{ 

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(j = L->size - 1; j >= i; j--)

資料結構C語言實作系列[1]——線性表

        L->list[j+1] = L->list[j];

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->list[i] = x;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    L->size++;

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deleteFirstList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    elemType temp;

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L ->size == 0)...{

資料結構C語言實作系列[1]——線性表

        printf("線性表為空,不能進行删除操作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    temp = L->list[0];

資料結構C語言實作系列[1]——線性表

    for(i = 1; i < L->size; i++)

資料結構C語言實作系列[1]——線性表

        L->list[i-1] = L->list[i];

資料結構C語言實作系列[1]——線性表

    L->size--;

資料結構C語言實作系列[1]——線性表

    return temp;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deleteLastList( struct  List  * L)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(L ->size == 0)...{

資料結構C語言實作系列[1]——線性表

        printf("線性表為空,不能進行删除操作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    L->size--;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return L ->list[L->size];        

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deletePosList( struct  List  * L,  int  pos)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    elemType temp;

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos < 1 || pos > L->size)...{        

資料結構C語言實作系列[1]——線性表

        printf("pos值越界,不能進行删除操作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    temp = L->list[pos-1];

資料結構C語言實作系列[1]——線性表

    for(i = pos; i < L->size; i++)

資料結構C語言實作系列[1]——線性表

        L->list[i-1] = L->list[i];

資料結構C語言實作系列[1]——線性表

    L->size--;

資料結構C語言實作系列[1]——線性表

    return temp;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  deleteValueList( struct  List  * L, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i, j;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < L->size; i++)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(L->list[i] == x)...{    

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(i == L->size)...{

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(j = i + 1; j < L->size; j++)...{

資料結構C語言實作系列[1]——線性表

        L->list[j-1] = L->list[j];

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    L->size--;

資料結構C語言實作系列[1]——線性表

    return 1;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  main()

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    int a[10] = ...{2, 4, 6, 8, 10, 12, 14, 16, 18, 20};

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表

    struct List L;

資料結構C語言實作系列[1]——線性表

    initList(&L, 5);

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < 10; i++)...{

資料結構C語言實作系列[1]——線性表

        insertLastList(&L, a[i]);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    insertPosList(&L, 11, 48);        insertPosList(&L, 1, 64);

資料結構C語言實作系列[1]——線性表

    printf("%d ", getElem(&L, 1));

資料結構C語言實作系列[1]——線性表

    traverseList(&L);

資料結構C語言實作系列[1]——線性表

    printf("%d ", findList(&L, 10));

資料結構C語言實作系列[1]——線性表

    updatePosList(&L, 3, 20);

資料結構C語言實作系列[1]——線性表

    printf("%d ", getElem(&L, 3));

資料結構C語言實作系列[1]——線性表

    traverseList(&L);

資料結構C語言實作系列[1]——線性表

    deleteFirstList(&L);            deleteFirstList(&L);

資料結構C語言實作系列[1]——線性表

    deleteLastList(&L);                deleteLastList(&L);

資料結構C語言實作系列[1]——線性表

    deletePosList(&L, 5);            ;deletePosList(&L, 7);

資料結構C語言實作系列[1]——線性表

    printf("%d ", sizeList(&L));

資料結構C語言實作系列[1]——線性表

    printf("%d ", emptyList(&L));

資料結構C語言實作系列[1]——線性表

    traverseList(&L);

資料結構C語言實作系列[1]——線性表

    clearList(&L);

資料結構C語言實作系列[1]——線性表

    return 0;

資料結構C語言實作系列[1]——線性表

}  

資料結構C語言實作系列[1]——線性表

#include  < stdio.h >

資料結構C語言實作系列[1]——線性表

#include  < stdlib.h >

資料結構C語言實作系列[1]——線性表

#define  NN 12

資料結構C語言實作系列[1]——線性表

#define  MM 20

資料結構C語言實作系列[1]——線性表

typedef  int  elemType ;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

struct  sNode ... {    

資料結構C語言實作系列[1]——線性表

    elemType data;

資料結構C語言實作系列[1]——線性表

    struct sNode *next;

資料結構C語言實作系列[1]——線性表

} ;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  initList( struct  sNode *   * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    *hl = NULL;

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  clearList( struct  sNode *   * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *cp, *np;

資料結構C語言實作系列[1]——線性表

    cp = *hl;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp != NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        np = cp->next;    

資料結構C語言實作系列[1]——線性表

        free(cp);

資料結構C語言實作系列[1]——線性表

        cp = np;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    *hl = NULL;        

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  sizeList( struct  sNode  * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    int count = 0;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(hl != NULL)...{

資料結構C語言實作系列[1]——線性表

        count++;

資料結構C語言實作系列[1]——線性表

        hl = hl->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return count;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  emptyList( struct  sNode  * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(hl == NULL)...{

資料結構C語言實作系列[1]——線性表

        return 1;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    }else...{

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType getElem( struct  sNode  * hl,  int  pos)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    int i = 0;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos < 1)...{

資料結構C語言實作系列[1]——線性表

        printf("pos值非法,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(hl != NULL)...{

資料結構C語言實作系列[1]——線性表

        i++;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(i == pos)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

        hl = hl->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(hl != NULL)...{

資料結構C語言實作系列[1]——線性表

        return hl->data;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    }else...{

資料結構C語言實作系列[1]——線性表

        printf("pos值非法,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  traverseList( struct  sNode  * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(hl != NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("%5d", hl->data);

資料結構C語言實作系列[1]——線性表

        hl = hl->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf(" ");

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType *  findList( struct  sNode  * hl, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(hl != NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(hl->data == x)...{

資料結構C語言實作系列[1]——線性表

            return &hl->data;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        }else...{

資料結構C語言實作系列[1]——線性表

            hl = hl->next;    

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return NULL;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  updatePosList( struct  sNode  * hl,  int  pos, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i = 0;

資料結構C語言實作系列[1]——線性表

    struct sNode *p = hl;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(p != NULL)...{        

資料結構C語言實作系列[1]——線性表

        i++;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(pos == i)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        }else...{

資料結構C語言實作系列[1]——線性表

            p = p->next;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos == i)...{

資料結構C語言實作系列[1]——線性表

        p->data = x;

資料結構C語言實作系列[1]——線性表

        return 1;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    }else...{

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  insertFirstList( struct  sNode *   * hl, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    struct sNode *newP;

資料結構C語言實作系列[1]——線性表

    newP = malloc(sizeof(struct sNode));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(newP == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("記憶體配置設定失敗,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->data = x;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->next = *hl;        

資料結構C語言實作系列[1]——線性表

    *hl = newP;

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  insertLastList( struct  sNode *   * hl, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    struct sNode *newP;

資料結構C語言實作系列[1]——線性表

    newP = malloc(sizeof(struct sNode));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(newP == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("内在配置設定失敗,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->data = x;

資料結構C語言實作系列[1]——線性表

    newP->next = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(*hl == NULL)...{

資料結構C語言實作系列[1]——線性表

        *hl = newP;        

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    else...{

資料結構C語言實作系列[1]——線性表

        struct sNode *p = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        while(p->next != NULL)...{

資料結構C語言實作系列[1]——線性表

            p = p->next;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

        p->next = newP;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  insetPosList( struct  sNode *   * hl,  int  pos, elemType x) ... {

資料結構C語言實作系列[1]——線性表

    int i = 0;

資料結構C語言實作系列[1]——線性表

    struct sNode *newP;

資料結構C語言實作系列[1]——線性表

    struct sNode *cp = *hl, *ap = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos <= 0)...{

資料結構C語言實作系列[1]——線性表

        printf("pos值非法,傳回0表示插入失敗! ");

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp != NULL)...{

資料結構C語言實作系列[1]——線性表

        i++;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(pos == i)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        }else...{

資料結構C語言實作系列[1]——線性表

            ap = cp;

資料結構C語言實作系列[1]——線性表

            cp = cp->next;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP = malloc(sizeof(struct sNode));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(newP == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("記憶體配置設定失敗,無法進行插入操作! ");

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->data = x;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(ap == NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        newP->next = cp;        

資料結構C語言實作系列[1]——線性表

        *hl = newP;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    else...{

資料結構C語言實作系列[1]——線性表

        newP->next = cp;

資料結構C語言實作系列[1]——線性表

        ap->next = newP;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return 1;        

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

void  insertOrderList( struct  sNode *   * hl, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *cp = *hl, *ap = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *newP;

資料結構C語言實作系列[1]——線性表

    newP = malloc(sizeof(struct sNode));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(newP == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("内在配置設定失敗,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->data = x;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if((cp == NULL) || (x < cp->data))...{

資料結構C語言實作系列[1]——線性表

        newP->next = cp;

資料結構C語言實作系列[1]——線性表

        *hl = newP;

資料結構C語言實作系列[1]——線性表

        return;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp != NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(x < cp->data)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        }else...{

資料結構C語言實作系列[1]——線性表

            ap = cp;

資料結構C語言實作系列[1]——線性表

            cp = cp->next;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    newP->next = cp;

資料結構C語言實作系列[1]——線性表

    ap->next = newP;

資料結構C語言實作系列[1]——線性表

    return;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deleteFirstList( struct  sNode *   * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    elemType temp;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *p = *hl;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(*hl == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("單連結清單為空,無表頭可進行删除,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    *hl = (*hl)->next;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    temp = p->data;            

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    free(p);                

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return temp;            

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deleteLastList( struct  sNode *   * hl)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    elemType temp;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *cp = *hl;

資料結構C語言實作系列[1]——線性表

    struct sNode *ap = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(cp == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("單連結清單為空,無表頭進行删除,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp->next != NULL)...{

資料結構C語言實作系列[1]——線性表

        ap = cp;

資料結構C語言實作系列[1]——線性表

        cp = cp->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(ap == NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        *hl = (*hl)->next;        

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    else...{

資料結構C語言實作系列[1]——線性表

        ap->next = NULL;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    temp = cp->data;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    free(cp);        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return temp;        

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

elemType deletePosList( struct  sNode *   * hl,  int  pos)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int i = 0;

資料結構C語言實作系列[1]——線性表

    elemType temp;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *cp = *hl;

資料結構C語言實作系列[1]——線性表

    struct sNode *ap = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if((cp == NULL) || (pos <= 0))...{

資料結構C語言實作系列[1]——線性表

        printf("單連結清單為空或pos值不正确,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp != NULL)...{

資料結構C語言實作系列[1]——線性表

        i++;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(i == pos)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

        ap = cp;

資料結構C語言實作系列[1]——線性表

        cp = cp->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(cp == NULL)...{

資料結構C語言實作系列[1]——線性表

        printf("pos值不正确,退出運作! ");

資料結構C語言實作系列[1]——線性表

        exit(1);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(pos == 1)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        *hl = (*hl)->next;        

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    else...{

資料結構C語言實作系列[1]——線性表

        ap->next = cp->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    temp = cp->data;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    free(cp);        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return temp;    

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  deleteValueList( struct  sNode *   * hl, elemType x)

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    struct sNode *cp = *hl;

資料結構C語言實作系列[1]——線性表

    struct sNode *ap = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    while(cp != NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        if(cp->data == x)...{

資料結構C語言實作系列[1]——線性表

            break;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

        ap = cp;

資料結構C語言實作系列[1]——線性表

        cp = cp->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(cp == NULL)...{

資料結構C語言實作系列[1]——線性表

        return 0;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    if(ap == NULL)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        *hl = (*hl)->next;        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    }else...{

資料結構C語言實作系列[1]——線性表

        ap->next = cp->next;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    free(cp);        

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    return 1;        

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

int  main( int  argc,  char *  argv[])

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

... {

資料結構C語言實作系列[1]——線性表

    int a[NN];

資料結構C語言實作系列[1]——線性表

    int i;

資料結構C語言實作系列[1]——線性表

    struct sNode *p, *h, *s;

資料結構C語言實作系列[1]——線性表

    srand(time(NULL));

資料結構C語言實作系列[1]——線性表

    initList(&p);

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < NN; i++)...{

資料結構C語言實作系列[1]——線性表

        a[i] = rand() & MM;

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf("随機數序列:");

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < NN; i++)...{

資料結構C語言實作系列[1]——線性表

        printf("%5d", a[i]);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf(" ");

資料結構C語言實作系列[1]——線性表

    printf("随機數逆序:");

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(i = 0; i < NN; i++)...{

資料結構C語言實作系列[1]——線性表

        insertFirstList(&p, a[i]);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    traverseList(p);

資料結構C語言實作系列[1]——線性表

    printf("單連結清單長度:%5d ", sizeList(p));

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(h = p; h != NULL; h = h->next)...{

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

        while(deleteValueList(&(h->next), h->data))...{

資料結構C語言實作系列[1]——線性表

            ;

資料結構C語言實作系列[1]——線性表

        }

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf("去除重複數:");

資料結構C語言實作系列[1]——線性表

    traverseList(p);

資料結構C語言實作系列[1]——線性表

    printf("單連結清單長度:%5d ", sizeList(p));

資料結構C語言實作系列[1]——線性表

    h = NULL;

資料結構C語言實作系列[1]——線性表
資料結構C語言實作系列[1]——線性表

    for(s = p; s != NULL; s = s->next)...{

資料結構C語言實作系列[1]——線性表

        insertOrderList(&h, s->data);

資料結構C語言實作系列[1]——線性表

    }

資料結構C語言實作系列[1]——線性表

    printf("有序表序列:");

資料結構C語言實作系列[1]——線性表

    traverseList(h);

資料結構C語言實作系列[1]——線性表

    clearList(&p);

資料結構C語言實作系列[1]——線性表

    system("pause");

資料結構C語言實作系列[1]——線性表

    return 0;

資料結構C語言實作系列[1]——線性表

}

資料結構C語言實作系列[1]——線性表

繼續閱讀