数据结构day3

//按值进行查找元素
int list_search_value(seqlist_ptr S,datatype e)
{
    //判断逻辑
    int a=0;
    if(NULL==S||list_empty(S))
    {
        printf("查找不合法\n");
        return 0;
    }
    //查找过程
    for(int i=0;ilen;i++)
    {
        if(e==S->data[i])
        {
            a=1;
            break;
        }
        else
        {
            a=2;
        }
    }
    if(a==1)
    {
        printf("该数值已经存在\n");
    }
    else
    {
        printf("该数值不存在\n");
    }
}

//按顺序表排序(选择排序)
void list_sort(seqlist_ptr S,int flag)
{
    //判断逻辑
    if(NULL==S||list_empty(S))
    {
        printf("排序失败\n");
        return;
    }
    //开始排序
    int i,j,index=0,k;
    //控制循环次数
    for(i=1;ilen;i++)
    {
        index=i-1;//每一次都跟换下标
        for(j=i-1;jlen;j++)
        {
            if(flag==1)//升序
            {
                if(S->data[index]>S->data[j])
                    index=j;
            }
            else//降序
            {
                if(S->data[index]data[j])
                    index=j;
            }
        }
        //进行三杯水交换
        if(index!=i-1)
        {
            k=S->data[index];
            S->data[index]=S->data[i-1];
            S->data[i-1]=k;
        }
    }
    //输出排序后的结果
    printf("进行排序后:");
    for(i=0;ilen;i++)
    {
        printf("%d",S->data[i]);
    }
    putchar(10);
}

//顺序表的最值
datatype list_mvalue(seqlist_ptr S,int flag)
{
    //判断逻辑
    if(NULL==S||list_empty(S))
    {
        printf("输入不合理\n");
    }
    //寻找最值的过程
    int i;
    int max=S->data[0];//定义并初始化最大值
    int min=S->data[1];//定义并初始化最小值
    for(i=0;ilen;i++)
    {
        if(maxdata[i])//判断最大值
        {
            max=S->data[i];
        }
        if(min>S->data[i]);//判断最小值
        {
            min=S->data[i];
        }
    }
    //判断输出最大值还是输出最小值
    if(flag==1)
    {
        printf("最大值是%d\n",max);
    }
    else
    {
        printf("最小值是%d\n",min);
    }
}

//顺序表的反转
void list_reverse(seqlist_ptr S)
{
    //判断逻辑
    if(NULL==S||list_empty(S))
    {
        printf("无法进行反转\n");
    }
    //反转过程
    int i,j,k;
    for(i=0,j=S->len-i-1;ilen,j>i;i++,j--)
    {
        //进行交换
        k=S->data[i];
        S->data[i]=S->data[j];
        S->data[j]=k;
    }
    //输出反转后的结果
    printf("反转后:");
    for(i=0;ilen;i++)
    {
        printf("%d",S->data[i]);
    }
    putchar(10);
}
输出结果:

数据结构day3_第1张图片

 思维导图:https://mubu.com/app/edit/home/ePnOahJEqD#m

 

你可能感兴趣的:(数据结构)