顺序表相关操作

#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
");
    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
");
    else
    {
        for(i=0;i<head->size;i++)
            printf("%5d",head->l[i]);
    }
    printf("
");
}
//函数功能:判断顺序表是否为空
//函数参数:指向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
");
        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
");
    else if(pos<0||pos>head->size)
        printf("pos error
");
    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
");
        exit(1);
    }
    else if(pos<0||pos>=head->size)
    {
        printf("not found
");
        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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/Thereisnospon/p/4768525.html