苏嵌实训——day8(下)

简介: 苏嵌实训——day8(下)

4.2.9 按照位置修改数据


//按照位置修改数据
void SeqlistUpdateByPos(seqlist *st,int p,DataType value)
{
    if(p < 0 || p > st->pos)
    {
        printf("修改失败,位置有误!\n");
        return;
    }
    st->data[p] = value;
    printf("按照位置修改数据成功!\n");
}


4.2.10 按照数据查找位置


//按照数据查找位置
int SeqlistSearchPos(seqlist *st,DataType value)
{
    int i;
    for(i = 0 ; i <= st->pos;i++)
    {
        if(st->data[i] == value)
        {
            printf("按照数据查找位置成功!\n");
            return i;
        }
    }
    printf("查找失败,数据%d不存在\n",value);
    return -1;
}


4.2.11 按照位置查找数据


//按照位置查找数据
DataType SeqlistSearchData(seqlist *st,int p)
{
    if(p < 0 || p > st->pos)
    {
        printf("按照位置查找数据失败,位置有误!\n");
        return (DataType)-1;
    }
    printf("按照位置查找数据成功!\n");
    return st->data[p];
}


练习:


1.删除重复数据


(将先出现的数据和后面的数据进行对比,如果有重复的将后面的数据删除)

s1: 1 2 2 2 1 1 3 4 2 4 5 4 1

。。。。。

s1:1 2 3 4 5


//删除重复数据
void SeqlistDeleteRepeat(seqlist *st)
{
    int i,j;
    for(i = 0 ; i < st->pos;i++)
    {
        for(j = i + 1;j <= st->pos;j++)
        {
            if(st->data[i] == st->data[j])
            {
                //按照位置删除j的数据
                SeqlistDeleteByPos(st,j);
                //j--目的防止删除位置的数据不作比较
                j--;
            }
        }
    }
}


2.合并表


(将s2里面与s1不一样的数据保存在s1的后面)

s1: 1 2 3 4 5

s2: 1 3 5 7 9

s1:1 2 3 4 5 7 9


//合并表
void SeqlistMerge(seqlist *s1,seqlist *s2)
{
    int i;
    for(i = 0 ; i <= s2->pos;i++)
    {
        if(SeqlistSearchPos(s1,s2->data[i]) == -1)
        {
            SeqlistInsert(s1,s2->data[i]);
        }
    }
}


4.3 整体代码


相关文章
|
3月前
|
SQL 前端开发 数据库
|
网络协议 安全 网络安全
苏嵌实训——day18
苏嵌实训——day18
苏嵌实训——day18
|
Ubuntu API 数据库
苏嵌实训——day19
苏嵌实训——day19
101 0
苏嵌实训——day19
|
存储 Ubuntu 固态存储
苏嵌实训——day1
苏嵌实训——day1
136 0
苏嵌实训——day1
|
存储
苏嵌实训——day11(下)
苏嵌实训——day11(下)
苏嵌实训——day11(下)
|
存储
苏嵌实训——day9(上)
苏嵌实训——day9(上)
苏嵌实训——day9(上)
|
搜索推荐 API 索引
苏嵌实训——day13(下)
苏嵌实训——day13(下)
苏嵌实训——day13(下)