数据结构

#include <stdio.h>
#include <stdlib.h>

#define ERROR 0
#define OK 1

typedef struct Vector {
    int size;
    int length;
    int *data;
} Vector;

void init(Vector *vector,int size) {
    vector->size=size;
    vector->length=0;
    vector->data=(int *)malloc(sizeof(int)*size);
}

void expand(Vector *vector) {
    int *old_data=vector->data;
    vector->size=vector->size*2;
    vector->data=(int *)malloc(sizeof(int)*vector->size);
    for(int i=0;i<vector->length;i++){
        vector->data[i]=old_data[i];
    }
    free(old_data);
    cout<<"expand"<<endl;

}

int insert(Vector *vector,int loc,int value) {
    if(loc<0||loc>vector->length){
        cout<<"failed"<<endl;
        return ERROR;
    }
    if(vector->length>=vector->size){
        expand(vector);
}
    for(int i=vector->length;i>loc;i--){
        vector->data[i]=vector->data[i-1];
    }
    vector->data[loc]=value;
    vector->length++;
    cout<<"success"<<endl;
    return OK;
}


void clear(Vector *vector) {
    free(vector->data);
    free(vector);

}

int main() {
    Vector *a = (Vector *)malloc(sizeof(Vector));
    init(a, 5);
    int n;
    int p[101];
    int q[101];
    for(i=0;i<n;i++){
        a.insert(p[i],q[i]);
    }
    return 0;
}

 

posted @ 2019-10-28 21:58  p_201821440046  阅读(86)  评论(0编辑  收藏  举报