順序表的實現

順序表的實現

#include <stdio.h>
#include <stdlib.h>
#include "seqlist.h"
int main()
{
    Pseqlist seq1;
    seq1 = create_Null_Seqlist(20);
    if(is_Null_seqlist(seq1))
        printf("Empty\n");
    //1f(-1 == locate_seqlist(seq1,5))
     //   printf("Empty!\n");

    for(int i = 0; i < 10; i++){
        seq1->element[i] = i + 1;
        seq1->n++;
    }

    for(int i = 0; i < seq1->n; i++)
        printf("%d ", seq1->element[i]);

    printf("\n");

    if(insert_Pre_seq(seq1,3,99))
        for(int i = 0; i < seq1->n; i++)
            printf("%d ", seq1->element[i]);

    printf("\n");

    if(deleteP_seq(seq1,8))
        for(int i = 0; i < seq1->n; i++)
            printf("%d ", seq1->element[i]);

    printf("\n");

    if(deleteV_seq(seq1,99))
        for(int i = 0; i < seq1->n; i++)
            printf("%d ", seq1->element[i]);

    printf("\n");
    return 0;
}

 

#include "seqlist.h"
#include <malloc.h>
Pseqlist create_Null_Seqlist(int m)
{
    Pseqlist palist;
    palist = (Pseqlist)malloc(sizeof(struct seqlist));
    palist->element=(DataType*)malloc(sizeof(DataType)*m);
    palist->maxnum = m;
    palist->n = 0;

    return palist;
}
//==========================================================
int is_Null_seqlist(Pseqlist palist)
{
    return (0 == palist->n);
}
//===============================================
int locate_seqlist(Pseqlist palist, DataType x)
{
    int i;
    for(i = 0; i < palist->n; i++){
        if( x == palist->element[i])
            return i;
    }
    return -1;
}
//===========================================
int insert_Pre_seq(Pseqlist palist, int p, DataType x)
{
    for(int i = palist->n-1; i >= p; i--)
        palist->element[i+1]=
         palist->element[i];
    palist->element[p]=x;

    palist->n++;

    return 1;
}
//===========================================
int deleteP_seq(Pseqlist palist, int p)
{
    for(int i = p; i < palist->n-1; i++)
        palist->element[i] = palist->element[i+1];
    palist->n--;
    return 1;
}
//=====================================
int deleteV_seq(Pseqlist palist, DataType x)
{
    deleteP_seq(palist,locate_seqlist
                (palist,x));
    return 1;
}

#ifndef _SEQLIST_H_
#define _SEQLIST_H_
typedef int DataType;
struct seqlist
{
    int maxnum;
    int n;
    DataType* element;
};
typedef struct seqlist* Pseqlist;

Pseqlist create_Null_Seqlist(int m);
int is_Null_seqlist(Pseqlist palist);
int locate_seqlist(Pseqlist palist, DataType x);
int insert_Pre_seq(Pseqlist palist, int p, DataType x);

int deleteP_seq(Pseqlist palist, int p);
int deleteV_seq(Pseqlist palist, DataType x);
#endif // _SEQLIST_H_

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章