news 2026/4/14 17:20:51

顺序表的实现(2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
顺序表的实现(2)

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。
typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型
#define MAXSIZE 100 //顺序表可能达到的最大长度
typedef struct {
ElemType* elem; //存储空间的基地址
int length; //当前长度
} SqList;
Status InitList(SqList& L)
{
//构造一个空的顺序表L
L.elem = new ElemType[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
if (!L.elem)
exit(OVERFLOW); //存储分配失败退出
L.length = 0; //空表长度为0
return OK;
}
void DestroyList(SqList& L)
{
if (L.elem)
delete[]L.elem; //释放存储空间
}
int ListLength(SqList L)
{
return L.length;
}
bool ListEmpty(SqList L)
{
if (L.length == 0)
return true;
else
return false;
}
Status GetElem(SqList L, int i, ElemType& e) //用e返回L中第i个数据元素的值
{
if (i<1 || i>L.length) //顺序表的位置在1~L.length,那么不符合条件的范围就是
//i<1||i>L.length
return ERROR;
e = L.elem[i - 1]; //数组的第i-1个位置放的就是线性表第i个位置的元素
return OK;
}
int LocateElem(SqList L, ElemType e) //返回L中第1个值与e相同的元素在L中的位置,不存在返回0
{
for (int i = 0; i < L.length; i++)
{
if (L.elem[i] == e)
return i + 1;
}
return 0;
}
Status ListInsert(SqList& L, int i, ElemType e) //在顺序表L中第i个位置插入新的元素e
{
if (i<1 || i>L.length + 1)
{
return ERROR;
}
if (L.length == MAXSIZE) {
return ERROR;
}
for (int j = L.length - 1; j >= i - 1; j--)
{
L.elem[j + 1] = L.elem[j];
}
L.elem[i - 1] = e;
L.length++;
return OK;
}
Status ListDelete(SqList& L, int i) //在顺序表L中删除第i个元素
{
if (i<1 || i>L.length)
return ERROR;
for (int j = i; j <= L.length - 1; j++)
{
L.elem[j - 1] = L.elem[j];
}
--L.length;
return OK;
}
void ListPrint(SqList L)
{
for (int i = 0; i < L.length; i++)
cout << L.elem[i] << ((i == L.length - 1) ? '\n' : ' ');
}
int main()
{
int i;
ElemType e;
SqList L;
string op;
InitList(L);
while (cin >> op) {
if (op == "Empty")
cout << (ListEmpty(L) ? "Empty" : "Not empty") << endl;
else if (op == "Insert") {
cin >> i >> e;
if (ListInsert(L, i, e) == ERROR)
cout << "Insert failed" << endl;
else
ListPrint(L);
}
else if (op == "Length") {
cout << "List length is " << ListLength(L) << endl;
}
else if (op == "GetElem") {
cin >> i;
if (GetElem(L, i, e) == ERROR)
cout << "Out of index" << endl;
else
cout << "The elem at position " << i << " is " << e << endl;
}
else if (op == "LocateElem") {
cin >> e;
i = LocateElem(L, e);
if (i == 0)
cout << e << " is not found in list" << endl;
else
cout << e << " is found at the position " << i << endl;
}
else if (op == "Delete") {
cin >> i;
if (ListDelete(L, i) == ERROR)
cout << "Delete failed" << endl;
else
ListPrint(L);
}
}
DestroyList(L);
return 0;
}

//代码来源:湖南科技大学oj题目

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 12:33:21

飞算JavaAI配置生成实战:3步完成企业级应用部署,90%开发者不知道的技巧

第一章&#xff1a;飞算JavaAI配置生成的核心价值飞算JavaAI通过智能化手段重构传统Java应用的配置管理方式&#xff0c;显著提升开发效率与系统稳定性。其核心价值在于将繁琐、易错的手动配置过程转化为自动化、可追溯的AI驱动流程&#xff0c;降低对个体开发者经验的依赖。提…

作者头像 李华
网站建设 2026/4/11 22:06:25

vue+uniapp+Springboot基于微信小程序的付费厨房管理系统的设计与实现

文章目录摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 本系统采用前后端分离架构&#xff0c;基于Vue.js、UniApp和Spring Boot技术栈&#xf…

作者头像 李华
网站建设 2026/4/13 12:00:04

谷歌学术镜像网站助力lora-scripts研究背景资料搜集

谷歌学术镜像助力 LoRA 训练&#xff1a;从理论到实践的完整路径 在 AIGC 浪潮席卷内容创作、智能对话与个性化生成的今天&#xff0c;越来越多开发者希望快速定制专属模型——无论是打造独特的艺术风格&#xff0c;还是训练一个懂行业术语的聊天机器人。然而&#xff0c;面对复…

作者头像 李华
网站建设 2026/4/12 3:40:21

batch_size对训练稳定性的影响:lora-scripts实测数据

batch_size对训练稳定性的影响&#xff1a;lora-scripts实测数据 在消费级显卡上跑通一个LoRA模型&#xff0c;结果刚启动训练就爆出“CUDA out of memory”——这种场景你一定不陌生。更让人抓狂的是&#xff0c;好不容易把 batch_size 调小跑起来了&#xff0c;Loss曲线却像心…

作者头像 李华
网站建设 2026/4/15 5:12:33

Travis CI是否支持lora-scripts的持续集成?配置示例

Travis CI 是否支持 lora-scripts 的持续集成&#xff1f;配置示例 在 AIGC 开发日益工程化的今天&#xff0c;一个常见的痛点浮现出来&#xff1a;我们花大量时间调试 LoRA 训练脚本&#xff0c;结果发现失败原因只是某个 YAML 字段拼写错误、路径写错&#xff0c;或者依赖版本…

作者头像 李华
网站建设 2026/4/12 11:38:37

游戏开发中的资产生成:借助lora-scripts制作NPC形象

游戏开发中的资产生成&#xff1a;借助lora-scripts制作NPC形象 在如今的游戏开发中&#xff0c;一个新角色从概念草图到正式上线&#xff0c;往往要经历原画设计、3D建模、贴图绘制、动画绑定等多个环节。对于小型团队或独立开发者而言&#xff0c;这套流程不仅耗时漫长&#…

作者头像 李华