/*
* function: 创建顺序表
* @param [ in]
* @param [out]
* @return
*/
SeqList* create_seqlist()
{
SeqList* sq=(SeqList*)malloc(sizeof(SeqList));
if(NULL==sq)
{
printf("顺序表创建失败\n");
return NULL;
}
sq->pos=0;
return sq;
}
/*
* function: 插入数据
* @param [ in]
* @param [out]
* @return
*/
void insert_seqList(SeqList* sq,dataType num)
{
if(sq->pos>=N)
{
printf("顺序表为满,插入失败\n");
return;
}
sq->data[sq->pos]=num;
sq->pos++;
return;
}
/*
* function: 删除数据
* @param [ in]
* @param [out]
* @return
*/
dataType delete_seqList(SeqList*sq)
{
if(0==sq->pos)
{
printf("顺序表为空,删除失败\n");
return (dataType)(-1);
}
sq->pos--;
dataType num=sq->data[sq->pos];
return num;
}
/*
* function: 遍历顺序表
* @param [ in]
* @param [out]
* @return
*/
void show_seqList(SeqList*sq)
{
for(int i=0;i<sq->pos;i++)
{
printf("%d\t",sq->data[i]);
}
printf("\n");
return;
}
/*
* function: 按下标位置进行插入
* @param [ in]
* @param [out]
* @return
*/
void insert_seqListByindex(SeqList*sq,int index,dataType num
{
if(sq->pos>=N)
{
printf("顺序表为满,插入失败\n");
return;
}
if(index<0||index>sq->pos)
{
printf("index=%d位置非法,插入失败\n",index);
}
for(int j=sq->pos;j>=index+1;j--)
{
sq->data[j]=sq->data[j-1];
}
sq->data[index]=num;
sq->pos++;
}
/*
* function: 按下标位置进行删除
* @param [ in]
* @param [out]
* @return
*/
dataType delete_seqListByindex(SeqList* sq,int index)
{
if(0==sq->pos)
{
printf("顺序表为空,删除失败\n");
return (dataType)(-1);
}
if(index<0||index>=sq->pos)
{
printf("index=%d位置非法,删除失败\n",index);
return (dataType)(-1);
}
dataType num=sq->data[index];
for(int j=index;j<sq->pos-1;j++)
{
sq->data[j]=sq->data[j+1];
}
sq->pos--;
return num;
}
/*
* function: 按照数据修改数据
* @param [ in]
* @param [out]
* @return
*/
void updataData_seqList(SeqList* sq,dataType old,dataType new)
{
int i=0;
for(int i=0;i<sq->pos;i++)
{
if(sq->data[i]==old)
{
sq->data[i]=new;
break;
}
}
if(i==sq->pos)
{
printf("没有找到%d数据\n",old);
}
return;
}
/*
* function: 顺序表去重
* @param [ in]
* @param [out]
* @return
*/
void deleteRepst_seqList(SeqList*sq)
{
for(int i=0;i<sq->pos-1;i++)
{
for(int j=i+1;j<sq->pos;j++)
{
if(sq->data[i]==sq-> data[j])
{
delete_seqListByindex(sq,j);
j--;
}
}
}
return;
}