作业:
按下表插入
按下表修改
head.h
#ifndef __HEAD_H__
#define __HEAD_H__
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef struct Sqlist
{
int data[MAXSIZE];//数据元素
int len;//数据长度
}sqlist;
sqlist * create();
int full_sqlist(sqlist *list);
int input_rear(sqlist *list,int element);
int output(sqlist *list);
int delete(sqlist *list);
int search_by_sub(sqlist *list,int sub);
int add_by_x(sqlist *list,int x,int element);
int modify_by_x(sqlist *list,int x,int element);
sqlist *free_1(sqlist *list);
#endif
test.c
#include"head.h"
sqlist * create()
{
sqlist *list=(sqlist *)malloc(sizeof(sqlist));
if(NULL == list)
{
return NULL;
}
memset(list->data,0,sizeof(list->data));
//顺序表数据元素清零
list->len = 0;
//顺序表长度清零
return list;
}
int full_sqlist(sqlist *list)
{
return list->len == MAXSIZE ?-1:0;
}
int input_rear(sqlist *list,int element)
{
if( NULL == list || full_sqlist(list) )
{
printf("error\n");
return -1;
}
list->data[list->len] = element;
list->len++;
return 0;
}
int empty(sqlist *list)
{
return list->len == 0 ? -1:0;
}
int output(sqlist *list)
{
if( NULL == list || empty(list))
{
printf("ERROR\n");
return -1;
}
for(int i = 0 ; i < list->len ; i++)
{
printf("%d\t",list->data[i]);
}
puts("");
return 0;
}
int delete(sqlist *list)
{
if( NULL == list || empty(list))
{
printf("错误\n");
return -1;
}
list->len-- ;
return 0;
}
int search_by_sub(sqlist *list,int sub)
{
if( NULL == list || empty(list) || sub < 0 || sub > list->len)
{
printf("ERROR");
return -1;
}
printf("search is %d\n",list->data[sub]);
return 0;
}
int add_by_x(sqlist *list,int x,int element)
{
if( NULL == list || full_sqlist(list) || x < 0 || x > list->len )
{
printf("ERROR\n");
return -1;
}
for(int i = list->len - 1 ; i >= x ; i--)
{
list->data[i+1]=list->data[i];
}
list->len++;
list->data[x]=element;
return 0;
}
int modify_by_x(sqlist *list,int x,int element)
{
if( NULL == list || empty(list) || x < 0 || x > list->len )
{
printf("ERROR\n");
return -1;
}
list->data[x] = element;
return 0;
}
sqlist *free_1(sqlist *list)
{
if( NULL == list)
{
return list;
}
free(list);
list = NULL;
return list;
}
main.c
#include"head.h"
int main()
{
sqlist *list=create();
int n = 0;
printf("please enter n: ");
scanf("%d",&n);
int element = 0;
for( int i = 0 ; i < n ; i++)
{
printf("please enter %d element:",i+1);
scanf("%d",&element);
input_rear(list,element);
}
output(list);
delete(list);
output(list);
int sub = 0;
printf("please enter sub:");
scanf("%d",&sub);
search_by_sub(list,sub);
int x = 0;
element = 0;
printf("please enter x:");
scanf("%d",&x);
printf("please enter element:");
scanf("%d",&element);
add_by_x(list,x,element);
output(list);
x = 0;
element = 0;
printf("please enter x:");
scanf("%d",&x);
printf("please enter element:");
scanf("%d",&element);
modify_by_x(list,x,element);
output(list);
list=free_1(list);
return 0;
}
运行结果: