#include<stdio.h>
#define MAX 100//定义顺序表的最大值
//顺序表的定义
typedef struct
{
int l[MAX];
int size;//顺序表的长度
}sequence_list;
//函数功能:顺序表的初始化——置空表
//函数参数:指向sequenc_list型变量的指针head
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_init
void Slt_init(sequence_list*head)
{
head->size=0;
}
//函数功能:在顺序表尾部进行插入
//函数参数:指向sequenc_list型变量的指针head,int类型的插入数据num
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_append
void Slt_append(sequence_list*head,int num)
{
if(head->size==MAX)
printf("FULL\n");
else
{
head->l[head->size]=num;
head->size++;
}
}
//函数功能:打印顺序表的各个节点
//函数参数:指向sequenc_list型变量的指针head
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_display
void Slt_display(sequence_list*head)
{
int i;
if(head->size<1)
printf("EMPTY\n");
else
{
for(i=0;i<head->size;i++)
printf("%5d",head->l[i]);
}
printf("\n");
}
//函数功能:判断顺序表是否为空
//函数参数:指向sequenc_list型变量的指针head
//函数返回值:int类型:1为空,0为非空
//文件名:sequenc_list.h 函数名:Slt_empty
int Slt_empty(sequence_list*head)
{
return head->size?0:1;
}
//函数功能:查找顺序表值为num的节点位置
//函数参数:指向sequenc_list型变量的指针head,int类型的查找数据num
//函数返回值:int 类型,成功返回位置,失败返回-1
//文件名:sequenc_list.h 函数名:Slt_find
int Slt_find(sequence_list*head,int num)
{
int i=0;
while(i<head->size&&head->l[i]!=num)i++;
return i<head->size?i:-1;
}
//函数功能:取得顺序表中相应位置的值
//函数参数:指向sequenc_list型变量的指针head,int类型的位置pos
//函数返回值:int 类型,成功返回顺序表中相应位置的值
//文件名:sequenc_list.h 函数名:Slt_init
int Slt_get(sequence_list*head,int pos)
{
if(pos<0||pos>=head->size)
{
printf("ERROR\n");
exit(1);
}
else
return head->l[pos];
}
//函数功能:顺序表的插入
//函数参数:指向sequenc_list型变量的指针head,int类型的位置pos
// int类型的插入数据num
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_insert
void Slt_insert(sequence_list*head,int pos,int num)
{
if(head->size==MAX)printf("FULL\n");
else if(pos<0||pos>head->size)
printf("pos error\n");
else
{
int i;
for(i=head->size-1;i>=pos;i--)
head->l[i+1]=head->l[i];
head->l[pos]=num;
head->size++;
}
}
//函数功能:顺序表的删除操作
//函数参数:指向sequenc_list型变量的指针head,int类型的位置pos
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_del
void Slt_del(sequence_list*head,int pos)
{
int i;
if(head->size==0)
{
printf("EMPTY\n");
exit(1);
}
else if(pos<0||pos>=head->size)
{
printf("not found\n");
exit(1);
}
else
{
for(i=pos;i<head->size-1;i++)
head->l[i]=head->l[i+1];
head->size--;
}
}
//函数功能:顺序表的倒置
//函数参数:指向sequenc_list型变量的指针head
//函数返回值:空
//文件名:sequenc_list.h 函数名:Slt_reverse
void Slt_reverse(sequence_list*head)
{
int i,temp,len=head->size;
for(i=0;i<len/2;i++)
{
temp=head->l[i];
head->l[i]=head->l[len-i-1];
head->l[len-i-1]=temp;
}
}
int main()
{
return 0;
}
顺序表相关操作
最新推荐文章于 2022-09-28 23:33:24 发布