#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
相关信息
你可能还喜欢
热门推荐信息
汽车标定技术(三)--XCP协议如何支持测量功能
ByCyberSecurity_zhang
目录 1. 概述 2. 测量方式 -- Poll 3. 测量方式 -- DAQ 3.1 ODT概念模型 3.2 DAQ List概念 3.3 ODT 绝对编号和相对编号 3.4 静态DAQ和动态DAQ ...
UG NX机械设计软件常见安装问题
By逃逸的卡路里
UG软件版本这里咱们就不提了,大部分伙伴应该都是钩子激活软件,肯定会遇到或多或少的安装问题,今天这里给大家总结了下,需要的小伙伴自取。 有其他问题可以一起讨论,也希望看到的小伙伴多关注支持哦。 安装U ...
可逆矩阵的性质
By听海边涛声
如果矩阵A可逆,那么它的逆矩阵也可逆,并且如果矩阵A可逆,假设是一个不为0的数,那么也可逆,并且如果矩阵A和都可逆,而且它们的阶数也相同,那么它们的乘积也是可逆的,并且如果矩阵A可逆,那么它的行列式的 ...