typedef struct lnode *list;
struct lnode{
int data[maxsize];
int last;//最后一个,表长为last+1
};
struct lnode l;
list ptrl;
list makeempty(){
list ptrl;
ptrl = (list)malloc(sizeof(struct lnode));
ptrl->last = -1;
return ptrl;
}
int find(int x, list ptrl){
int i = 0;
while(i <= ptrl->last && ptrl->data[i]!= x)
i++;
if(i > ptrl->last)
return -1;
else
return i;
}
void insert(int x,int i,list ptrl){
int j;
if(ptrl->last == maxsize-1){
printf("表满");
return;
}
if(i < 1 || i > ptrl->last+2){
printf("位置错误");
return;
}
for(j=ptrl->last; j>=i-1; j--){
ptrl->data[j+1] = ptrl->data[j];
}
ptrl->data[i-1] = x;
ptrl->last++;
return;
}
//删除,删第i个位置的元素
void delete(int i,list ptrl){
int j;
if(i < 1 || i > ptrl->last+1){
printf("位置错误");
return;
}
for(j=i-1; j<ptrl->last; j++){
ptrl->data[j] = ptrl->data[j+1];
}
ptrl->last--;
return;
}
0 条评论