作业
//按位置插入
void insert_loc(seq_p p,int n,datatype data)
{
int i;
if(p==NULL){
printf("p is NULL\n");
return;
}
if(full_seq(p)){
printf("seq_list is full\n");
return;
}
if(n<1 || n>p->len){
printf("n illegal\n");
return;
}
for(i=p->len;i>n-1;i--){
p->data[i]=p->data[i-1];
}
p->data[i]=data;
p->len++;
}
//头删
void delete_head(seq_p p)
{
int i=0;
if(p==NULL){
printf("p is NULL\n");
return;
}
if(empty_seq(p)){
printf("seq_list is empty\n");
return;
}
for(i=0;i<p->len-1;i++){
p->data[i]=p->data[i+1];
}
p->data[i]=0;
p->len--;
}
//尾删
void delete_tail(seq_p p)
{
if(p==NULL){
printf("p is NULL\n");
return;
}
if(empty_seq(p)){
printf("seq_list is empty\n");
return;
}
p->data[p->len-1]=0;
p->len--;
}
//清空顺序表
void delete_seq(seq_p p)
{
if(p==NULL){
printf("p is NULL\n");
return;
}
if(empty_seq(p)){
printf("seq_list is empty\n");
return;
}
bzero(p->data,p->len*sizeof(datatype));
p->len=0;
}
//释放顺序表
void free_seq(seq_p p)
{
delete_seq(p);
free(p);
p=NULL;
}