数据结构学习系列之顺序表的两种插入方式

  • 方式1:
  • 在顺序表末端插入数据元素,代码如下:
  • 示例代码:
c 复制代码
int insert_seq_list_1(list_t *seq_list,int data){

    if(NULL == seq_list){

        printf("入参为NULL\n");

        return -1;

    }

    if(N == seq_list->count){

        printf("顺序表已满,插入失败\n");

        return -1;

    }

    seq_list->a[seq_list->count].num = data;
    seq_list->count++;

    return 0;

}
  • 注意事项:

  • 1.形参传入到具有插入数据元素功能的函数后,需要做入参合理性检查

  • 2.还需要判断此时顺序表所存储的数据元素是否已满

  • 3.本示例代码中的count是计数的变量每次插入一个数据元素后,需要加1,此处易忽略

  • 方式2:

  • 在顺序表的任意位置插入数据元素,代码如下:

  • 示例代码:

c 复制代码
int insert_seq_list_2(list_t *seq_list,int pos, int data){


    if(NULL == seq_list){

        printf("入参为NULL\n");

        return -1;

    }
    if(N == seq_list->count){

        printf("顺序表已满,插入失败\n");

        return -1;

    }
    if( pos < 0 || pos > seq_list->count){

        printf("插入位置不合理,插入失败\n");

        return -1;

    }

    int i = 0;
    i = seq_list->count-1;

    while(i >= pos){

        seq_list->a[i+1] = seq_list->a[i];

        i--;

    }

    seq_list->a[pos].num = data;
    seq_list->count++;

    return 0;
}
  • 注意事项:
  • 1.同方式1:形参传入到具有插入数据元素功能的函数后,需要做入参合理性检查
  • 2.也同方式1:还需要判断此时顺序表所存储的数据元素是否已满
  • 3.判断所要插入数据元素的位置在顺序表中是否合理
  • 4.可以采用while循环或者for循环的方式找到所要插入数据元素的位置后,此位置的数据元素以及此位置之后的所有数据元素,依次向后挪动一个位置,目的是腾出所指定的待插入位置
  • 5.将所要插入的数据元素的值赋值给该位置的值,也就是覆盖,记得count加1
相关推荐
旖旎夜光几秒前
【LangChain实战】LangChain 学习笔记(二):结构化输出、流式传输与消息管理
人工智能·笔记·python·学习·ai·langchain
青瓦梦滋7 分钟前
Linux高级IO
linux·运维·服务器·网络·网络协议·tcp/ip
a187927218319 分钟前
【算法】动态规划第五篇:区间 DP——从“看什么都像背包“到“最后戳谁“
算法·leetcode·动态规划·dp·区间·区间dp·算法讲解
꯭自꯭闭꯭9 分钟前
达梦(DM8)安装测试
linux·运维·服务器·数据库
whitelbwwww13 分钟前
c++ 多线程
开发语言·c++·算法
额鹅恶饿呃14 分钟前
随着CentOS官方停服的时间越来越久,大量仍在使用CentOS7的企业和运维从业者
java·python·算法·c#·ruby
牢姐与蒯15 分钟前
Linux进程(七).进程控制
linux·运维·服务器·ubuntu
Mr. zhihao16 分钟前
Linux 内存惰性分配:从虚拟地址到物理页的深度解析
linux·服务器·内存分配
不会就选b19 分钟前
数据结构之数&&二叉树(一)
数据结构
白狐_79820 分钟前
408 数据结构|KMP算法核心:为什么不用主串回退
数据结构·算法