顺序表的实现

news/2024/4/30 12:34:16/文章来源:https://www.cnblogs.com/kk4458/p/16785713.html

 

 

函数接口定义:

顺序表描述的结构体为
typedef struct {ElemType *elem; //存储空间的基地址int length; //当前长度
} SqList;需要实现函数的接口分别为:int GetElem(SqList L, int i, ElemType &e)  顺序表的取值
判断i值是否合理,若不合理,返回0;[i-1]单元存储第i个数据元素; 返回1int LocateElem_Sq(SqList L, double e) 顺序表的查找
查找成功,返回序号i+1;查找失败,返回0int ListInsert_Sq(SqList &L, int i, ElemType e)顺序表的插入
判断i值,不合法返回0;当前存储空间已满,返回0;插入位置及之后的元素后移;将新元素e放入第i个位置;表长增1;返回1int ListDelete_Sq(SqList &L, int i)顺序表的删除
判断i值,不合法返回0;被删除元素之后的元素前移;表长减1;返回1void ListInput(SqList &L)顺序表数据的输入
输入顺序表长度;依次输入数据;表长赋值void ListOutput(SqList L)顺序表数据的输出

裁判测试程序样例:

 

#include<iostream>
#include<string>
#include<iomanip>
#include <cstdlib>
using namespace std;#define OVERFLOW -2typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型#define MAXSIZE 100            //顺序表可能达到的最大长度typedef struct {ElemType *elem; //存储空间的基地址int length; //当前长度
} SqList;void InitList_Sq(SqList &L) { //算法2.1 顺序表的初始化//构造一个空的顺序表LL.elem = new ElemType[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间if (!L.elem)exit(OVERFLOW); //存储分配失败退出L.length = 0; //空表长度为0

}/* 请在这里填写答案 */int main() {SqList L;int i = 0, temp, a, c;double price;ElemType e;//初始化线性表
      InitList_Sq(L);//输入线性表
ListInput(L);//输出线性表
            ListOutput(L);//顺序表取值cin>>i;temp = GetElem(L, i, e);if (temp != 0) {cout <<"查找位置的数是"<<e<< endl;} elsecout << "查找失败!位置超出范围\n";//顺序表查找
cin >> price;temp = LocateElem_Sq(L, price);if (temp != 0) {cout << "该数位置为" << temp << endl;} elsecout << "查找失败!\n";//顺序表的插入
cin >> a;cin >> e; //输入a和e,a代表插入的位置,e代表插入的数值if (ListInsert_Sq(L, a, e))ListOutput(L);elsecout << "插入失败\n";//顺序表的删除
cin >> c;if (ListDelete_Sq(L, c))ListOutput(L);elsecout << "删除失败\n";return 0;
}

 

void ListInput(SqList &L)
{int i=0;cin>>i;for(int j=0; j<i; j++){cin>>L.elem[j];}L.length=i;
}void ListOutput(SqList L)
{for(int j=0; j<L.length; j++){cout<<L.elem[j]<<" ";}cout<<endl;
}int GetElem(SqList L, int i, ElemType &e)
{if(i<1||i>L.length)return 0;e=L.elem[i-1];return 1;
}int LocateElem_Sq(SqList L, double e) 
{for(int j=0; j<L.length; j++){if(L.elem[j]==e)return j+1;}return 0;
}int ListInsert_Sq(SqList &L, int i, ElemType e)
{if(i<1||i>L.length)return 0;if(L.length==MAXSIZE)return 0;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 1;
}int ListDelete_Sq(SqList &L, int i)
{if(i<1||i>L.length)return 0;for(int j=i; j< L.length-1; j++){L.elem[j-1]=L.elem[j];}L.length--;return 1;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_22367.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器开发26:Linux中线程和进程的联系与区别(游戏后端请和游戏思考10一起食用)

文章目录一、线程创建方法&#xff08;以redis举例&#xff09;1&#xff09;创建线程函数讲解2&#xff09;线程创建的标记二、内核中对线程的数据结构表示1&#xff09;task_struct具体定义2&#xff09;线程与进程的区别三、进程、线程创建过程及异同1&#xff09;进程创建(…

Oracle Form Builder 安装时遇到的问题记录

Oracle Form Builder 安装时遇到的问题记录 问题1&#xff1a;Checking operating system version: must be 5.0, 5.1 or 5.2. Actual 6.1 Checking operating system version: must be 5.0, 5.1 or 5.2. Actual 6.1 Failed <<<< 解决方法&#xff1a; 修改x:\ds…

JAVAEE多线程synchronized 优化过程

文章目录synchronized 优化过程一、锁升级/锁膨胀1. 偏向锁2. 轻量级锁3. 重量级锁二、锁消除三、锁粗化总结synchronized 优化过程 对于synchronized 1.既是乐观锁,也是悲观锁 2.既是轻量级锁,也是重量级锁 3.乐观锁的部分是基于自旋锁实现的,悲观锁的部分是基于挂起等待锁实…

springboot+jsp云课堂在线教育系统javaweb

“云课堂”在线教育系统是由高校学生依据兴趣爱好自愿组成&#xff0c;按照章程自主开展在线教育课程。“云课堂”在线教育系统是实施素质教育的重要途径和有效方式&#xff0c;在加强校园文化建设、提高学生综合素质、引导学生适应社会、促进学生成才就业等方面发挥着重要作用…

【23种设计模式】组合模式(Composite Pattern) .Net Core实现

文章目录需求变更我们应该怎么做?组合和单个对象是指什么呢?使用组合模式来设计菜单组合迭代器来源组合模式&#xff08;Composite Pattern&#xff09;&#xff0c;又叫部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&…

【服务器数据恢复】AIX环境下误删除逻辑卷的数据恢复方案

一、AIX存储层面相关的知识&AIX环境下LV误删除后的恢复方案。 对于AIX而言&#xff0c;PV相当于物理磁盘&#xff0c;一个VG由若干个PV组成&#xff0c;这让我们可以将容量不同的存储空间组合起来进行统一分配。AIX把同一个VG的所有PV按相同大小的存储颗粒&#xff08;PP&…

自制操作系统系列(二):软盘读取

代码仓库地址&#xff1a;https://github.com/freedom-xiao007/operating-system 简介 在上一篇中&#xff0c;我们使用汇编编写了一个直接显示hello的程序&#xff0c;接下来我们继续探索如果使用汇编读取软盘数据 软盘数据读取准备 在上一篇中&#xff0c;我们使用nasm将…

让运维化繁为简,云原生可观测平台 Alibaba Cloud Lens 正式发布

9 月 28 日&#xff0c;阿里云正式推出云产品可观测平台 Alibaba Cloud Lens&#xff08;Lens 透镜&#xff0c;意为洞察细微变化&#xff09;&#xff0c;从成本、性能、安全、数据保护、稳定性、访问分析六个维度&#xff0c;为用户提供对存储类、网络类、数据库类等云产品的…

还在埋头敲代码?不妨学学设计模式,必能让你工作事半功倍

设计模式在开发中占很重要的地位&#xff1b;在大型项目中使用好设计模式往往会取得事半功倍的效果&#xff1b;下面就介绍下几种在开发中常用到的设计模式 装饰者模式(Decorator Pattern) 装饰者模式是在不必改变原类文件和使用继承的情况下&#xff0c;动态地扩展一个对象的…

中断系统:外部中断

中断系统&#xff1a;外部中断 实现功能 按下独立按键Key3&#xff0c;LED流水灯向右&#xff1b;按下Key4&#xff0c;LED流水灯向左。 单片机型号&#xff1a;STC89C52 硬件原理 中断系统就是当系统在进行一项工作时&#xff0c;需要终止这项工作&#xff0c;转而去执行另一…

Springboot复习

本笔记来自b站尚硅谷 文章目录SpringbootHelloWorld原理Value获取值和ConfigurationProperties获取值比较PropertySource 和 ImportResourceprofile自动配置原理整合日志指定配置全面接管SpringMVC启动流程自定义starterdev-toolsyml提示指标监控Springboot HelloWorld原理 配置…

Python函数练习题:通讯录管理程序实战案例

嗨害大家好鸭&#xff01;我是小熊猫❤ 好久没有整实战案例类文章辽 今天就来整一整~ 功能简介 实现一个通讯录管理程序&#xff0c;使用函数来实现程序&#xff0c;采用模块化的程序设计方法&#xff1a; 划分通讯录程序的功能模块&#xff0c;使用函数实现相应的功能首先…

数据湖-hudi概述

前言 数据湖是目前比较热的一个概念&#xff0c;许多企业都在构建或者计划构建自己的数据湖。 数据湖是一个集中式存储库&#xff0c;允许您以任意规模存储所有结构化和非结构化数据。您可以按原样存储数据&#xff08;无需先对数据进行结构化处理&#xff09;&#xff0c;并运…

nginx80转443

多了一个server&#xff0c;做了一个301的跳转 server { listen 80; server_name www.web1.com web1.com; &#xff08;这里是可写别名的&#xff0c;第二个是别名&#xff09; return 301 https://www.web1.com$request_uri; &#xff08;当别人访问80&#xff0c;让它转到…

智能网联-浅谈基于PKI的车联网应用服务安全

智能网联-浅谈基于PKI的车联网应用服务安全 面对车联网快速发展趋势&#xff0c;信息安全是一项必要的防护措施。车端应用数字证书可认证合法身份&#xff0c;保障数据加密通信&#xff0c;防止信息的泄露与攻击。基于PKI的车联网应用服务安全认证体系框架&#xff0c;从国家层…

Java多线程的创建与Thread类的方法及使用

Java多线程的创建与Thread类的方法及使用&#x1f34e;一.Thread类的属性与方法&#x1f347;1.1什么是线程&#x1f347;1.2Thread类的基础常见的构造方法&#x1f347;1.3Thread的常见属性&#x1f347;1.4Thread类常用的基础方法&#x1f34e;二.Java线程的创建&#x1f347…

6步搭建一个飞机大战游戏

摘要&#xff1a;本文以华为云软件开发平台DevCloud为例&#xff0c;展示飞机大战游戏开发的DevOps实践流程。DevOps实践 DevOps实践是一种开发、测试运维一体化的模式&#xff0c;其实践的外在表现一般包括了如代码仓库、构建、测试、发布、配置、监控等工具形成的一个完整的…

引擎之旅 Chapter.3 文件系统

文章目录引言在此之前...Unicode和ASCIIC风格字符串的操作函数集合字符串操作字符串类型转换Part1&#xff1a;操作文件名和文件路径Part2&#xff1a;单个文件的读写文件打开的模式TFile的定义Part3&#xff1a;异步文件I/O异步I/O线程文件类中的异步方法引言 为什么会将文件…

数据中台开源解决方案(一)

数据中台商业的解决方案有很多,开源框架种类繁多,每一个模块都有很多开源的套件。以查询引擎为例,可以使用的开源工具有MySQL、Redis、Impala、MongoDB、PgSQL等。可以根据实际业务需要,选择合适的开源套件。 可供选择的解决方案太多,重点推荐开源解决方案,框架图如下图所…

【RCJ-2 AC220V 0.015A静态冲击继电器】

系列型号 RCJ-2/48VDC冲击继电器 RCJ-2/110VDC冲击继电器 RCJ-2/220VDC冲击继电器 RCJ-2/100VAC冲击继电器 RCJ-2/127VAC冲击继电器 RCJ-2/220VAC冲击继电器 RCJ-3/220VAC冲击继电器 RCJ-3/127VAC冲击继电器 RCJ-3/100VAC冲击继电器 RCJ-3/220VDC冲击继电器 RCJ-3/110VDC冲击继…