#include<stdio.h>
#include<stdlib.h>
#include"seqlist.h"
seqlist_t *create_seqlist(void)
{
seqlist_t *L = NULL;
L = (seqlist_t*)malloc(sizeof(seqlist_t));
if(L == NULL)
{
puts("get no memory");
return L;
}
L->last = -1;
return L;
}
//创建一个顺序表
void clear_seqlist(seqlist_t *L)
{
if(L == NULL)
{
puts("The sequence *L is NULL");
return ;
}
free(L);
return ;
}
//清除一个顺序表
int is_empty_seqlist(seqlist_t *L)
{
if(L == NULL)
{
puts("seqlist *L is NULL");
return -1;
}
return (L->last==-1);
}
//检测是否为空顺序表
int in_full_seqlist(seqlist_t *L)
{
if(L == NULL)
{
puts("seqlist *L is NULL");
return -1;
}
return (L->last==Maxsize-1);
}
//检测是否为满顺序表
void set_empty_seqlist(seqlist_t *L)
{
if(L==NULL)
{
puts("seqlist *L is NULL");
return ;
}
L->last = -1;
return ;
}
//顺序表置空
int get_length_seqlist(seqlist_t *L)
{
if(L == NULL);
{
puts("seqlist *L is NULL");
return -1;
}
return (L->last+1);
}
//返回顺序表有效数据长度
void show_seqlist(seqlist_t *L)
{
int i=0;
for(i=0;i<=L->last;i++)
{
printf("L->data[%d]=%d\n",i,L->data[i]);
}
return ;
}
//显示顺序表内容
int insert_seqlist(seqlist_t *L,data_t x,int pos)
{
int t=0,i=0;
if(is_empty_seqlist(L)||pos<0||pos>L->last)
{
puts("The pos is error");
return -1;
}
for(i=L->last;i>=pos;i--)
{
L->data[i+1] = L->data[i];
}
L->last++;
L->data[pos] = x;
return 0;
}
//在某一个位置插入一个数据(增)
int delete_seqlist(seqlist_t *L,int pos)
{
int i=0;
if(pos<0||pos>L->last)
{
puts("input pos is invalid");
return -1;
}
for(i=pos;i<=L->last;i++)
{
L->data[i]=L->data[i+1];
}
L->last--;
return 0;
}
//删除某个位置的数据(删)
int change_seqlist(seqlist_t *L,data_t x,int pos)
{
if(L->last=-1||pos<0||pos>L->last)
{
puts("input pos is invalid");
return -1;
}
L->data[pos] = x;
return 0;
}
//改变某个位置的数据(改)
int search_seqlist(seqlist_t *L,data_t x)
{
int i=0;
for(i=0;i<=L->last;i++)
{
if(L->data[i] == x)
return i ;
}
return -1;
}
//查找某个位置的数据(查)
评论0