1.heah.h
#ifndef HEAD_H_
#define HEAD_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define maxsize 10
enum A{SUCCESS,FLASE=-1};
typedef int type;
typedef struct {
type arr[maxsize];
type len;
}SQlist;
SQlist * create();
int input(SQlist *list,type element);
int output(SQlist *list);
int delete(SQlist *list,type n);
int insert_sub(SQlist *list,type n,type element);
int delete_sub(SQlist *list,type sub);
int update_sub(SQlist *list,type sub,type element);
int search_sub(SQlist *list,type sub);
int delete_element(SQlist *list,type element);
int search_element(SQlist *list,type element);
int update_element(SQlist *list,type element,type element0);
int QUCHONG(SQlist *list);
int sort(SQlist *list);
SQlist* free_p(SQlist *list);
#endif
2.test.c
#include "head.h"
SQlist *create()
{
SQlist *list=((SQlist*)malloc(sizeof(SQlist)));
memset(list->arr,0,sizeof(list->arr));
list->len=0;
return list;
}
int input(SQlist *list,type element)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
list->arr[list->len]=element;
list->len++;
return SUCCESS;
}
int output(SQlist *list)
{
if(list==NULL||list->len>mSQlist* free_p(SQlist *list)SQlist* free_p(SQlist *list)axsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
printf("%d ",list->arr[i]);
}
printf("\n");
return SUCCESS;
}
int delete(SQlist *list,type n)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<n;i++)
{
list->arr[list->len]==0;
list->len--;
}
return SUCCESS;
}
int insert_sub(SQlist *list,type sub,type element)
{
if(list==NULL||list->len>maxsize||sub<0||sub>list->len)
{
return FLASE;
}
list->len++;
for(type i=list->len;i>sub;i--)
{
list->arr[list->len+1]=list->arr[list->len];
}
list->arr[sub]=element;
return SUCCESS;
}
int delete_sub(SQlist *list,type sub)
{
if(list==NULL||list->len>maxsize||sub<0||sub>list->len)
{
return FLASE;
}
for(type i=sub;i<list->len;i++)
{
list->arr[i]=list->arr[i+1];
}
list->arr[list->len]=0;
list->len--;
}
int update_sub(SQlist *list,type sub,type element)
{
if(list==NULL||list->len>maxsize||sub<0||sub>list->len)
{
return FLASE;
}
list->arr[sub]=element;
return SUCCESS;
}
int search_sub(SQlist *list,type sub)
{
if(list==NULL||list->len>maxsize||sub<0||sub>list->len)
{
return FLASE;
}
printf("在下标%d处的元素是%d\n",sub,list->arr[sub]);
return SUCCESS;
}
int delete_element(SQlist *list,type element)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
if(list->arr[i]==element)
{
delete_sub(list,i);
i--;
}
}
return SUCCESS;
}
int search_element(SQlist *list,type element)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
if(list->arr[i]==element)
printf("元素%d的下标是%d\n",element,i);
}
return SUCCESS;
}
int update_element(SQlist *list,type element,type element0)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
if(list->arr[i]==element)
{
list->arr[i]=element0;
}
}
return SUCCESS;
}
int QUCHONG(SQlist *list)
{
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
for(type j=i+1;j<list->len;j++)
{
if(list->arr[i]==list->arr[j])
{
delete_sub(list,j);
j--;
}
}
}
return SUCCESS;
}
int sort(SQlist *list)
{
type temp;
if(list==NULL||list->len>maxsize)
{
return FLASE;
}
for(type i=0;i<list->len;i++)
{
for(type j=i;j<list->len;j++)
{
if(list->arr[i]>list->arr[j])
{
temp=list->arr[i];
list->arr[i]=list->arr[j];
list->arr[j]=temp;
}
}
}
return SUCCESS;
}
SQlist* free_p(SQlist *list)
{
if(list==NULL)
{
return NULL;
}
free(list);
list=NULL;
return list;
}
3.main.c
#include "head.h"
int main(int argc,const char *argv[])
{
SQlist *list=create();
type n,element,sub,element0;
printf("插入多少个元素\n");
scanf("%d",&n);
for(type i=0;i<n;i++)
{
printf("输入第%d个元素\n",i+1);
scanf("%d",&element);
input(list,element);
}
output(list);
printf("尾删几次\n");
scanf("%d",&n);
delete(list,n);
output(list);
printf("在哪个下标插入哪个元素\n");
scanf("%d %d",&sub,&element);
insert_sub(list,sub,element);
output(list);
printf("在哪个下标删除元素\n");
scanf("%d",&sub);
delete_sub(list,sub);
output(list);
printf("在哪个下标替换哪个元素\n");
scanf("%d %d",&sub,&element);
update_sub(list,sub,element);
output(list);
printf("查询下标几处的元素\n");
scanf("%d",&sub);
search_sub(list,sub);
printf("输入需要删除的元素\n");
scanf("%d",&element);
delete_element(list,element);
output(list);
printf("输入想要查找的元素\n");
scanf("%d",&element);
search_element(list,element);
printf("输入想要修改的元素和修改后的元素\n");
scanf("%d %d",&element,&element0);
update_element(list,element,element0);
output(list);
QUCHONG(list);
printf("去重后:\n");
output(list);
printf("排序后:\n");
sort(list);
output(list);
free_p(list);
}