博客
关于我
线性表 插入对比
阅读量:404 次
发布时间:2019-03-04

本文共 911 字,大约阅读时间需要 3 分钟。

线性表是数据存储的两种主要方式之一,常用于列表操作中。其基本操作包括插入、删除和查找。

顺序表的插入操作是其常见操作之一。在指定位置插入新元素时,需注意以下几点:

插入前的表结构为:a1, a2, ..., ai-1, ai, ai+1, ..., an。

插入后的表结构为:a1, a2, ..., ai-1, x, ai, ai+1, ..., an,其中1 ≤ i ≤ n+1。

以下是C语言实现顺序表插入操作的代码示例:

int Insert_SeqList(SeqList *L, int i, datatype x){    int j;    if (L->last == MAXSIZE - 1)    {        printf("表满");        return -1;    }    if (i < 1 || i > L->last + 2)    {        printf("位置错误");        return 0;    }    for (j = L->last; j > i - 1; j--)    {        L->data[j + 1] = L->data[j];    }    L->data[i - 1] = x;    L->last++;    return 0;}

链表插入示例:以下是单链表的插入代码示例:

LinkList Creat_LinkList1(){    LinkList L = NULL;    LNode *s;    int x;    scanf("%d", &x);    while (x != flag)    {        s = (LNode *)malloc(sizeof(LNode));        s->data = x;        s->next = L;        L = s;        scanf("%d", &x);    }    return L;}

链表与顺序表的主要区别在于存储方式和访问效率。插入操作在链表中只需修改两个指针即可完成,而顺序表则需移动大量数据。

转载地址:http://jzkh.baihongyu.com/

你可能感兴趣的文章
opencv1-加载、修改、保存图像
查看>>
opencv10-形态学操作
查看>>
opencv11-提取水平直线和垂直直线
查看>>
opencv12-图像金字塔
查看>>
opencv13-基本阈值操作
查看>>
opencv14-自定义线性滤波
查看>>
opencv15-边缘处理
查看>>
opencv16-Sobel算子
查看>>
opencv17-laplance算子
查看>>
opencv18-canny检测算法
查看>>
opencv19-霍夫直线变化
查看>>
opencv2-矩阵掩膜操作
查看>>
opencv20-霍夫圆检测
查看>>
opencv21-像素重映射
查看>>
opencv22-直方图均衡化
查看>>
opencv23-直方图计算
查看>>
opencv24-直方图比较
查看>>
opencv25-直方图反向投影
查看>>
opencv26-模板匹配
查看>>
opencv27-轮廓发现
查看>>