线性表顺序存储的C/C++实现

本文介绍了线性表顺序存储的概念,并提供了C/C++实现线性表的代码,包括表的输入输出、访问值、插入及删除值、合并表等基本操作。顺序存储利用数组实现,操作直观但时间复杂度较高。
摘要由CSDN通过智能技术生成

线性表顺序存储

线性表顺序存储的C/C++实现

线性表可以按顺序以及链式两种方式存储,顺序存储主要靠C语言数组实现,而链式存储主要用到链表。下面是线性表顺序结构的基本操作及代码实现。

表的输入及输出

表的输入比较简单,数组遍历输入输出即可,不多解释。

void Input(SqList *a) //输入表
{
   
    int l;
    printf("输入表长: "); scanf("%d", &l);
    printf("输入表: ");
    for(int i = 0;i < l;++i) //遍历输入
        scanf("%d", &(a->data[i]));
    a->len = l;
}

void Print(SqList *a) //输出表
{
   
    for(int i = 0;i < a->len - 1;++i) //遍历输出
        printf("%d ",a->data[i]);
    printf("%d\n", a->data[a->len - 1]);
}

访问值

直接访问指定位置即可

ElemType GetElm(SqList *a,int loc) //访问表中的值
{
   
    if(loc < 1 || loc > a->len) //给出坐标合法性检查
        printf("Error!\n");
    return a->data[loc-1]; //返回查到的值
}

插入及删除值

插入值时,先将指定位置的后继全部后移一位,注意这里我用了倒序遍历,可以防止覆盖

void Insert(SqList *a,int loc,ElemType n) //插入
{
   
    if(loc < 1 || loc > a->len + 1) //给出坐标合法性检查
    {
   
        printf("Error!\n");
        return;
    }
    for(int i = a->len;i >= loc;i--) //后继后移
        a->data[i] = a->data[i - 1];
    a->data
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值