408学习笔记-18-C-顺序表插入、删除、查询操作实战

1、命名规则

C语言中对变量与函数有两种命名规则:

1、下划线命名法

无论函数名还是变量名,每个单词都是全小写,且单词之间用下划线_连接,例如:list_insert

2、大/小驼峰命名法

函数名命名用大驼峰命名法,即:每个单词首字母大写,其余小写,且单词之间直接相连。

变量名命名用小驼峰命名法,即:除了首个单词,每个单词首字母大写,其余小写,且单词之间直接相连。


2、顺序表插入

C++语法:

c 复制代码
#include <stdio.h>

#define MaxSize 50

typedef int ElemType;

typedef struct
{

    ElemType data[MaxSize];
    //MaxSize是顺序表的最大长度,即能够存放元素个数的上限
    //ElemType,是为了让顺序表存储其他类型元素时,可以快速完成代码修改

    int length;//顺序表当前元素个数

}SqList;


bool ListInsert(SqList &list, int i, ElemType n)
{
    //判断需要插入的位置是否合法
    if(i < 1 || i > list.length + 1)
    {
        return false;
    }

    //判断顺序表是否已满
    if(list.length == MaxSize)
    {
        return false;
    }

    //插入元素操作
    //其实质就是将元素逐个往后移动,将需要插入的位置空出来,再插入元素
    for(int j = list.length; j >= i; j--)
    {
        list.data[j] = list.data[j-1];
    }
    list.data[i-1] = n;

    //更新顺序表元素个数
    list.length++;

    return true;
}


int main()
{
    SqList list;

    //初始化顺序表
    list.data[0] = 0;
    list.data[1] = 1;
    list.data[2] = 2;

    //更新顺序表元素个数
    list.length = 3;

    bool ret =  ListInsert(list, 4, 3);

    if(ret)
    {
        printf("success\n");

        for(int i = 0; i < list.length; i++)
        {
            printf("%3d", list.data[i]);
        }
    }
    else
    {
        printf("false\n");
    }


    return 0;
}

C语法:

c 复制代码
#include <stdio.h>

#define MaxSize 50

typedef int ElemType;

typedef struct
{

    ElemType data[MaxSize];
    //MaxSize是顺序表的最大长度,即能够存放元素个数的上限
    //ElemType,是为了让顺序表存储其他类型元素时,可以快速完成代码修改

    int length;//顺序表当前元素个数

}SqList;


int ListInsert(SqList *pList, int i, ElemType n)
{
    //判断需要插入的位置是否合法
    if(i < 1 || i > pList->length + 1)
    {
        return 0;
    }

    //判断顺序表是否已满
    if(pList->length == MaxSize)
    {
        return 0;
    }

    //插入元素操作
    //其实质就是将元素逐个往后移动,将需要插入的位置空出来,再插入元素
    for(int j = pList->length; j >= i; j--)
    {
        pList->data[j] = pList->data[j-1];
    }
    pList->data[i-1] = n;

    //更新顺序表元素个数
    pList->length++;

    return 1;
}


int main()
{
    SqList *pList;

    //初始化顺序表
    pList->data[0] = 0;
    pList->data[1] = 1;
    pList->data[2] = 2;

    //更新顺序表元素个数
    pList->length = 3;

    int ret =  ListInsert(pList, 4, 3);

    if(ret)
    {
        printf("success\n");

        for(int i = 0; i < pList->length; i++)
        {
            printf("%3d", pList->data[i]);
        }
    }
    else
    {
        printf("false\n");
    }


    return 0;
}

3、顺序表删除

C++语法:

c 复制代码
#include <stdio.h>

#define MaxSize 50

typedef int ElemType;

typedef struct
{

    ElemType data[MaxSize];
    //MaxSize是顺序表的最大长度,即能够存放元素个数的上限
    //ElemType,是为了让顺序表存储其他类型元素时,可以快速完成代码修改

    int length;//顺序表当前元素个数

}SqList;


bool ListDelete(SqList &list, int i, ElemType &del)
{
    //判断元素位置i是否合法
    if(i < 1 || i > list.length)
    {
        return false;
    }

    del = list.data[i];

    for(int j = i; j < list.length; j++)
    {
        list.data[j-1] = list.data[j];
    }

    //更新顺序表中的元素个数
    list.length--;

    return true;

}


int main()
{
    SqList list;

    //初始化顺序表
    list.data[0] = 0;
    list.data[1] = 1;
    list.data[2] = 2;

    //更新顺序表元素个数
    list.length = 3;

    //定义一个变量去保存被删除的元素
    ElemType del;

    bool ret =  ListDelete(list, 2, del);

    if(ret)
    {
        printf("success\n");

        for(int i = 0; i < list.length; i++)
        {
            printf("%3d", list.data[i]);
        }

        printf("\n%3d\n", del);
    }
    else
    {
        printf("false\n");
    }


    return 0;
}

4、顺序表查找

C++语法:

c 复制代码
#include <stdio.h>

#define MaxSize 50

typedef int ElemType;

typedef struct
{

    ElemType data[MaxSize];
    //MaxSize是顺序表的最大长度,即能够存放元素个数的上限
    //ElemType,是为了让顺序表存储其他类型元素时,可以快速完成代码修改

    int length;//顺序表当前元素个数

}SqList;


int LocateElement(SqList list, ElemType element)
{
    int i;
    for(i = 0; i < list.length; i++)
    {
        if(list.data[i] == element)
        {
            return i+1;
        }
    }

    return 0;
}


int main()
{
    SqList list;

    //初始化顺序表
    list.data[0] = 0;
    list.data[1] = 1;
    list.data[2] = 2;

    //更新顺序表元素个数
    list.length = 3;

    //定义一个变量去保存被删除的元素
    ElemType del;

    int ret =  LocateElement(list, 1);

    if(ret)
    {
        printf("success\n");

        printf("%d\n", ret);
    }
    else
    {
        printf("false\n");
    }


    return 0;
}
相关推荐
strongwyy2 小时前
9、nRF52xx蓝牙学习(pca10056.h学习)
单片机·嵌入式硬件·学习
每天题库2 小时前
2025 年江苏保安员职业资格考试经验分享
学习·安全·考试·题库·考证
低头专研5 小时前
Markdown标题序号处理工具——用 C 语言实现
c语言·开发语言·typora·markdown文件标题编号·md文件标题序号
Starry_hello world5 小时前
Linux 的准备工作
linux·笔记·有问必答
viperrrrrrrrrr77 小时前
大数据学习(105)-Hbase
大数据·学习·hbase
IT _oA7 小时前
Active Directory 域服务
运维·服务器·网络·windows·笔记
袖清暮雨8 小时前
Python刷题笔记
笔记·python·算法
weixin_428498498 小时前
Visual Studio 中使用 Clang 作为 C/C++ 编译器时,设置优化选项方法
c语言·c++·visual studio
菜鸡中的奋斗鸡→挣扎鸡8 小时前
第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
c语言·c++·蓝桥杯
六bring个六8 小时前
QT上位机笔记
开发语言·笔记·qt