#include using namespace std; #define MaxSize 10 // 1. 顺序表 // 静态分配 // 创建匿名结构体 typedef struct { int data[MaxSize]; int length; // 当前长度 } SqList; // 静态分配初始化顺序表 // 凡是需要改动原链表都需要引用或者指针传递 void InitList(SqList &L) { for (int i = 0; i < MaxSize; i++) { L.data[i] = 0; } L.length = 0; } // 插入元素 到第 i 个位置 bool ListInsert(SqList &L, int i, int e) { // 保证i的合法 if (i < 1 || i > L.length + 1) { return false; } // 保证 length 的合法 if (L.length >= MaxSize) { return false; } // 原本 i 位置及以后都向后移动一位 for (int j = i; j <= L.length; j++) { L.data[j] = L.data[j - 1]; } // 将 e 插入 L.data[i - 1] = e; // 移动之后再将长度进行增加 L.length++; return true; } // 删除第 i 个位置的元素 bool ListDelete(SqList &L, int i, int &e) { // 保证 i 的合法 if (i < 1 || i > L.length) { return false; } // 将被删除的元素赋值给 e,便于输出 e = L.data[i - 1]; // 将第 i 位置的元素(索引为 i - 1)及以后的元素向前移动一位 // 首次移动的索引是 i,最后一次移动的索引是 L.length - 1 for (int j = i; j < L.length; j++) { L.data[j - 1] = L.data[j]; } L.length--; return true; } // 遍历顺序表 void ListTraverse(SqList L) { for (int i = 0; i < L.length; i++) { cout << L.data[i] <<""; } cout << endl; } int main() { int e; SqList L; InitList(L); ListInsert(L, 1, 1); ListInsert(L, 2, 2); ListInsert(L, 3, 3); ListDelete(L, 2, e); cout <<"删除的元素是"<< e << endl; ListTraverse(L); return 0; }
收录于话题
#数据结构15
相关信息
你可能还喜欢
热门推荐信息
校验 ChatGPT 4.0 真实性的三个经典问题:快速区分 GPT3.5 与 GPT4,并提供免费测试网站
ByHashTang
现在已经有很多 ChatGPT 的套壳网站,以下分享验明 GPT-4 真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是 GPT-3.5 还是 GPT-4。 大家可以在这个网站测试:https: ...
汽车标定技术(三)--XCP协议如何支持测量功能
ByCyberSecurity_zhang
目录 1. 概述 2. 测量方式 -- Poll 3. 测量方式 -- DAQ 3.1 ODT概念模型 3.2 DAQ List概念 3.3 ODT 绝对编号和相对编号 3.4 静态DAQ和动态DAQ ...
初识Dockerfile
Byqq_58647543
Dockerfile简介 从之前的学习中我们可以了解到:镜像的定制实际上就是定制每一层所添加的配置、文件。那么如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像 ...
ubuntu cutecom串口调试工具使用方法(图形界面)
ByDontla
文章目录 Ubuntu下使用CuteCom进行串口调试使用指南什么是CuteCom?主要特点 安装CuteCom使用APT包管理器从源码编译安装 配置串口CuteCom界面解析(启动cutecom)使 ...
MTK联发科、高通、紫光展锐手机SOC平台型号汇总(含详细参数)
By新移科技
MediaTek联发科手机平台汇总: Qualcomm高通SOC平台汇总: 紫光展锐SOC平台汇总: 新移科技已成功研发手机SOC平台: 联发科平台: MTK6739、MTK6761、MTK6762、 ...