调用函数
函数体
#include <stdio.h>
#include <stdlib.h>
#include "./03_hanshu.h"
/*
* function: 创建顺序表
* @param [ in]
* @param [out]
* @return
*/
Seq* duiqv_Seq(void)
{
Seq * sq =(Seq*) malloc(sizeof(Seq));
if(NULL == sq)
{
printf("顺序表创建失败");
return NULL;
}
sq ->pos = 0;
return sq;
}
/*
* function: 插入数据
* @param [ in]
* @param [out]
* @return -1:插入数据失败 0:插入数据成功
*/
int charu(Seq * sq ,Iint num)
{
if(sq->pos >= N )
{
printf("顺序表已满,无法再输入数据\n");
return -1;
}
sq->data[sq->pos] = num;
sq->pos++;
return 0;
}
/*
* function: 删除
* @param [ in]
* @param [out]
* @return -1:顺序表内部无数据
*/
void shanchu(Seq* sq)
{
if(0 == sq->pos)
{
printf("顺序表内部无数据\n");
return;
}
sq->pos--;
return;
}
/*
* function: 遍历输出
* @param [ in]
* @param [out]
* @return
*/
void shuchu(Seq* sq)
{
int i;
for(i=0;i<(sq->pos);i++)
{
printf("%d ",sq->data[i]);
}
printf("\n");
return;
}
/*
* function: 指定下标位置进行插入
* @param [ in]
* @param [out]
* @return
*/
void xbcr(Seq * sq, Iint num, int index)
{
if(sq->pos >= N)
{
printf("顺序表已满\n");
return;
}
if(index<0 || index>sq->pos)
{
printf("index=%d 插入位置非法\n",index);
return;
}
for(int i=sq->pos;i>=index+1;i--)
{
sq->data[i] = sq->data[i-1];
}
sq->data[index] = num;
sq->pos++;
return;
}
/*
* function: 按下标位置删除数据
* @param [ in]
* @param [out]
* @return
*/
Iint xbsc(Seq* sq ,int index)
{
if(0== sq->pos)
{
printf("顺序表内部无数据\n");
return (Iint)(-1);
}
if(index<0 || index>=sq->pos)
{
printf("index=%d 删除位置不合法\n",index);
return (Iint)(-1);
}
Iint num = sq->data[index];
for(int i=index; i<=sq->pos-2;i++)
{
sq->data[i] = sq->data[i+1];
}
sq->pos--;
return num;
}
/*
* function: 释放堆空间
* @param [ in]
* @param [out]
* @return
*/
void shifang(Seq** sq)
{
free(sq);
*sq = NULL;
}
makefile代码
运行结果