#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
相关信息
你可能还喜欢
热门推荐信息
2023最新AI创作系统ChatGPT网站源码+Midjourney绘画+支持GPT-4-Turbo模型+即将支持TSS语音对话功能模块
By白云如幻
一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。本期针对源码系统整体测试下来非常完 ...
初识Dockerfile
Byqq_58647543
Dockerfile简介 从之前的学习中我们可以了解到:镜像的定制实际上就是定制每一层所添加的配置、文件。那么如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像 ...
C#中 怎么检测Tcp网线断开?
By望天hous
在 C# 中,如果使用 TcpClient 或 TcpListener 这样的套接字进行通信,并且网络连接断开,不发送心跳是无法立即检测到断开的。这是因为 TCP 协议本身没有内置的机制来检测连接是否 ...
OpenCvSharpSlim画中文
By乱蜂朝王
github地址:https://github.com/AvenSun/OpenCvSharpSlim Slim Build of OpenCvSharp OpenCvSharpSlim This p ...
Ubuntu22.04 server版本关闭DHCP,手动设置ip
By清浊-
在Ubuntu 22.04 中,网络配置已迁移到 Netplan,因此可以使用 Netplan 配置文件来手动设置 IP 地址并关闭 DHCP。 以下是在 Ubuntu 22.04 上手动设置 IP ...