当前位置: 首页 > news >正文

数据结构每日一题day4(顺序表)★★★★★

题目描述:删除顺序表L中第i个位置的元素,若i的输入不合法,则返回 false; 否则将被删元素赋给引用变量e,并将第i+1个元素及其后的所有元素依次往前移动一个位置,返回 true。

算法思想:删除顺序表L中第i个位置的元素的步骤如下:

合法性检查:若顺序表为空、指针为空或位置i不在有效范围(1 ≤ i ≤ length)内,返回false。

保存被删元素:将第i个元素(对应数组下标i-1)的值赋给引用变量e。

元素前移:将第i+1到表尾的所有元素依次前移一位,覆盖被删元素的位置。

更新表长:顺序表长度减1,返回true。

复杂度分析:时间复杂度O(n)空间复杂度O(1)

代码实现:

#include <stdbool.h>  // 使用bool类型需包含此头文件
#define MAXSIZE 100   // 假设顺序表的最大容量

typedef struct {
    int data[MAXSIZE]; // 存储元素的数组
    int length;        // 当前表长度
} SeqList;

bool ListDelete(SeqList *L, int i, int *e) {
    // 检查空指针、删除位置合法性
    if (L == NULL || i < 1 || i > L->length) {
        return false;
    }
    
    *e = L->data[i-1]; // 保存被删除元素的值(注意下标转换)
    
    // 将第i+1到末尾的元素依次前移一位
    for (int j = i; j < L->length; j++) {
        L->data[j-1] = L->data[j]; // 后一元素覆盖前一位置
    }
    
    L->length--;       // 表长度减1
    return true;
}

相关文章:

  • conda的基础命令
  • VLAN的高级特性
  • 苹果与安卓,鸿蒙下跨设备,应用分享
  • Matlab_Simulink中导入CSV数据与仿真实现方法
  • 基于Spring Boot的木里风景文化管理平台的设计与实现(LW+源码+讲解)
  • 1.2 斐波那契数列模型:LeetCode 面试题 08.01. 三步问题
  • 【NLP】13. NLP推理方法详解 --- 穷举和贪心搜索
  • Hyperlane 框架的临时上下文数据功能:助力高效 Web 开发
  • NoSQL数据库
  • JS 手撕题高频考点
  • MATLAB详细图文安装教程(附安装包)
  • 域渗透(web安全)
  • 归并排序与快速排序的简单实现(C语言)
  • 前端自动创建react项目脚手架
  • 中国太平保险网申校招测评笔试真题分析、历年真题题库、北森答案解析
  • golang 日志log与logrus
  • Android开发中的数据结构与算法:树与图
  • 音视频 YUV格式详解
  • Web开发-JS应用微信小程序源码架构编译预览逆向调试嵌套资产代码审计
  • 孤码长征:破译PCL自定义点云注册机制源码迷局——踩坑实录与架构解构
  • 做网站哪个公司最/武安百度seo
  • 创建网站数据库/企业危机公关
  • 电商网站建设与运行/公司网站费用
  • 网站主页面布局怎么做/百度推广客户端官方下载
  • 网站做收付款接口/网址如何被快速收录
  • 品牌宣传推广文案/合肥优化推广公司