线性表之顺序表

主要内容

  1. 顺序表
    预备知识
    定义:

线性表是一种数据结构,它由n个具有相同特性的数据元素组成的有限序列。线性表中的数据元素之间存在一对一的关系,即除了第一个元素外,每个元素都有且仅有一个直接前驱元素,除了最后一个元素外,每个元素都有且仅有一个直接后继元素。

线性表的基本操作包括:

  1. 创建线性表 InitList(&L):初始化一个空的线性表。
  2. 销毁线性表 DestroyList(&L):释放线性表所占用的内存空间。
  3. 清空线性表:将线性表中的所有元素清空,使其为空表。
  4. 判断线性表是否为空 Empty(L):判断线性表中是否有元素。
  5. 获取线性表长度 Length(L):获取线性表中元素的个数。
  6. 获取指定位置的元素 GetElem(L,i):获取线性表中指定位置的元素值。
  7. 插入元素 ListInsert(&L,i,e):在指定位置插入一个新的元素。
  8. 删除元素 LiistDelete(&L,i,&e):删除线性表中指定位置的元素。
  9. 查找元素LocateElem(L,e):查找线性表中是否存在指定的元素,并返回其位置。
  10. 修改元素:修改线性表中指定位置的元素值。

一.顺序表

顺序表是一种线性表,用一组地址连续的存储单元依次存储线性表中的元素。

顺序表是一种线性表的存储结构,它的基本操作包括插入操作、删除操作和按值查找。

1.插入操作:

代码如下(示例):

C语言实现:

void insert(int *arr, int *len, int index, int value) {
    if(index < 0 || index > *len) {
        printf("插入位置不合法\n");
        return;
    }
    for(int i = *len - 1; i >= index; i--) {
        arr[i+1] = arr[i];
    }
    arr[index] = value;
    (*len)++;
}

Python实现:

def insert(arr, index, value):
    arr.insert(index, value)

2.删除操作:

代码如下(示例):

C语言实现:

void delete(int *arr, int *len, int index) {
    if(index < 0 || index >= *len) {
        printf("删除位置不合法\n");
        return;
    }
    for(int i = index; i < *len - 1; i++) {
        arr[i] = arr[i+1];
    }
    (*len)--;
}

Python实现:

def delete(arr, index):
    arr.pop(index)

3.按值查找:

代码如下(示例):

C语言实现:

int search(int *arr, int len, int value) {
    for(int i = 0; i < len; i++) {
        if(arr[i] == value) {
            return i;
        }
    }
    return -1;
}

Python实现:

def search(arr, value):
    return arr.index(value)

以上是顺序表的基本操作,分别用C语言和Python实现了插入操作、删除操作和按值查找。


总结

以上是今天要讲内容,学到了顺序表的相关操作。
线性表–顺序表-1

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值