数据结构
#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; }