main.c
#include <stdio.h>
#include "./seqlist_1.h"
int main(int argc, const char *argv[])
{
Seqlist *sq = creats_seqlist();
add(sq,100);
add(sq,200);
add(sq,300);
add(sq,400);
show(sq);
insert(sq,500,2);
delete(sq,3);
change(sq,600,3);
show_index(sq,3);
putchar(10);
show(sq);
return 0;
}
seqlist_1.c
#include <stdio.h>
#include <stdlib.h>
#include "./seqlist_1.h"
Seqlist *creats_seqlist(){
Seqlist *ptr = (Seqlist*)malloc(sizeof(Seqlist));
if(NULL == ptr)
{
printf("创建失败");
return NULL;
}
ptr->pos=0;
return ptr;
}
void add(Seqlist *ptr,int add){
if(ptr->pos < N){
ptr->data[ptr->pos] = add;
ptr->pos++;
}
else
{
printf("增加失败,内存已满");
}
return;
}
void insert(Seqlist*ptr,int num,int index)
{
if(index>=0&&index<=ptr->pos&&ptr->pos<N){
ptr->pos++;
for(int i=ptr->pos-1;i>=index+1;i--){
ptr->data[i] = ptr->data[i-1];
}
ptr->data[index] = num;
}
else{
printf("下标有误\n");
}
return;
}
void delete(Seqlist *ptr,int index){
if(index>=0&&index<ptr->pos&&ptr->pos<N){
for(int i=index;i+1<ptr->pos;i++)
ptr->data[i] = ptr->data[i+1];
}
else{
printf("下标错误\n");
}
ptr->pos--;
return;
}
void change(Seqlist *ptr,int num,int index){
if(index>=0 && index<ptr->pos && ptr->pos<N){
ptr->data[index] = num;
}
else{
printf("下标有误\n");
}
return;
}
void show(Seqlist *ptr){
for(int i=0;i<ptr->pos;i++){
printf("%d\t",ptr->data[i]);
}
putchar(10);
return;
}
void show_index(Seqlist* ptr,int index)
{
printf("下标第%d位为%d",index,ptr->data[index]);
return;
}
seqlist_1.h
#ifndef __SEQLIST__
#define __SEQLIST__
#define N 100
typedef struct{
int data[N];
int pos;
}Seqlist;
Seqlist *creats_seqlist();
void add(Seqlist *ptr,int add);
void delete(Seqlist *ptr,int index);
void change(Seqlist *ptr,int num,int index);
void show(Seqlist *ptr);
void insert(Seqlist*ptr,int num,int index);
void show_index(Seqlist* ptr,int index);
#endif
执行结果