顺序表及其应用

news2024/11/24 4:04:25

掌握顺序表的初始化,初始化、查找、插入、删除、遍历、查看实际长度等操作

内容

  1. 从键盘输入n个整数,创建顺序表。【创建长度为n的顺序表】
  2. 从键盘输入1个整数x,在顺序表中查找x所在的位置。若找到,输出该元素所在的位置(即数组下标);若找不到,则显示“找不到”。【按值查找】
  3. 从键盘输入2个整数x、i,将元素x插入到第i个元素处,插入操作结束后遍历顺序表,观察输出结果。【插入】【遍历】
  4. 从键盘输入1个整数i,表示删除第i个元素,删除操作结束后遍历顺序表,观察输出结果。【删除】
  5. 从键盘输入1个整数x,删除找到的第一个值等于x的元素,删除操作结束后遍历顺序表,观察输出结果。【按值查找】【删除】
  6. 查看当前顺序表的长度。【求顺序表的长度】

完整代码

#include<iostream>
#include <stdlib.h>
using namespace std;

#define MAX 20
#define datatype int

typedef struct seqList
{
	datatype data[MAX];
	int last;
}SeqList;
//初始化 
SeqList *Init()
{
	SeqList *L;
	L=(SeqList *)malloc(sizeof(SeqList));
	L->last=-1;
	return L;
}
//添加
void Add(SeqList *L)
{
	int a;
	cout<<"请输入需要添加的个数:" ;
	cin>> a;
	datatype arr[a];//保存要添加的值
	cout<<"请输入需要添加的值:" ;
	for(int i=0;i<a;i++)
	{
		cin>>arr[i];
	}
	for(int i=0;i<a;i++)
	{
		L->data[i]=arr[i];
		L->last++;
		//cout<<L->data[i];
	}
	 
 } 
 
 //显示,遍历
 void Output(SeqList *L) 
 {
 	if(L->last!=-1)
 	{cout<<"遍历:"<<endl;
 		for(int i=0;i<=L->last;i++)
 		{
 			cout<<L->data[i]<<" ";
		 }
		 cout<<endl;
	 }
	 else cout<<"空表,无数据!"; 
	 
 }

//插入
int Insert(SeqList *L)
{
		int i;
	datatype x;
	cout<<"输入x,i,元素x插入到第i个元素处: ";
	cin>>x>>i;
	int j;
	if(L->last==MAX-1)
	{
		cout<<"表满";
		return (-1);
	}
	if(i<1||i>L->last+2)
	{
		cout<<"位置错";
		return (0); 
	}

	for(j=L->last;j>=i-1;j--)
	{
		L->data[j+1]=L->data[j];//节点移动,没有这行会越界,之前位置的节点会消失 
	}
	L->data[i-1]=x;
	L->last++;
	return(1);
}
 
//删除
int Delete(SeqList *L)
{int i;
	cout<<"输入i,删除第i个元素:";
	cin>>i;
	int j;
	if(i<1||i>L->last+1)
	{
		cout<<"不存在第i个元素";
		return (0); 
	}
	for(j=i;j<=L->last;j++)
	{
		L->data[j-1]=L->data[j];//移动 
	}
		L->last--;
		return (1);
	
 } 
 
 //查找删除 
int Location_dete(SeqList *L)
{datatype x;
int i=0;
	cout<<"输入x,删除第一个值为x的元素:";
	cin>>x;
	while(i<=L->last&&L->data[i]!=x)
	{
			i++;
			
			if(i<=L->last&&L->data[i]==x)
			{
				for(i;i<=L->last;i++)
	{
		L->data[i]=L->data[i+1];
	}
		L->last--;
		return (1);
				
			}
	else if(i>L->last)//最好加条件,不然删除最后一个的时候会找不到直接跳进这个里 
	{
		cout<<"没有此元素!"<<endl;
		return (-1);
	}
	
	}	
	
 } 

 void Length(SeqList *L)
 {
 	cout << "顺序表的长度为:"<<L->last+1;//下标从0开始所以要加1 
  } 

int main()
{
	SeqList *LA;
	LA=Init();
	Add(LA);
	Output(LA);
	Insert(LA);
	Output(LA);
	Delete(LA);
	Output(LA);
	Location_dete(LA);
	Output(LA);
	Length(LA);
	return 0;
}

运行结果

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOV10实时端到端目标检测

代码地址&#xff1a;GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection 论文地址&#xff1a;https://arxiv.org/pdf/2405.14458 本文介绍了YOLO系列目标检测器在实时和高效方面的优势&#xff0c;但是仍然存在一些缺陷&#xff0c;包括依赖非极大值…

【Linux】icmp_seq=1 Destination Host Unreachable

执行ping 命令提示&#xff1a;From 192.168.XX.XX icmp_seq1 Destination Host Unreachable 这个错误消息通常表示以下几种情况之一&#xff1a; 网络连接问题&#xff1a;目标主机可能没有连接到网络&#xff0c;或者网络中的某个路由器无法将数据包转发到目标主机。 目标主…

08.1.jenkins安装方法

安装 配置官方下载源 #配置jenkins源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key下载jak、jenkins服务 #下载jdk11环境&#xff0c;并且配置yu…

软考之信息系统管理知识点(3)

流水线&#xff1a;是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的&#xff0c;它们可同时为多条指令的不同部分进行工作&#xff0c;以提高各部件的利用率和指令的平均执行速度。 编译得过程 关系数据库是表的集合 …

基于yolov2深度学习网络的昆虫检测算法matlab仿真,并输出昆虫数量和大小判决

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 .......................................................... for i 1:12 % 遍历结…

声量 2024 | 从小到大,有哪些好产品曾出现在我们生活里?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 老段 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦 产品统筹 / bobo 场地支持 / 阿那亚 联合制作 / 声量The Power of Voice 特别鸣谢 / 深夜谈谈播客网络 本期节目录制于第二届「声量The Power of Voice」现场。 在…

【SqL】数据库脚本编写规范和指南

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

读人工智能时代与人类未来笔记13_网络57

1. jun背控制 1.1. 威慑的目的是通过威胁发动盒站来防止盒站 1.2. jun背控制的目的是通过限制甚至废除57&#xff08;或57类别&#xff09;本身来防止盒站真 1.2.1. 与盒不扩散相配合&#xff0c;以一整套详尽的条约、技术保障措施、监管和其他控制机制为支撑&#xff0c;所…

02-Linux【基础篇】

一、Linux的目录结构 1.基本介绍 Linux的文件系统采用层级式的树状目录结构&#xff0c;在此结构中的最上层是根目录"/"&#xff0c;然后在此目录下再创建其他的目录 深刻理解Linux树状文件目录是非常重要的 记住一句经典的话&#xff1a;在Linux世界里&#xff…

Golang | Leetcode Golang题解之第110题平衡二叉树

题目&#xff1a; 题解&#xff1a; func isBalanced(root *TreeNode) bool {return height(root) > 0 }func height(root *TreeNode) int {if root nil {return 0}leftHeight : height(root.Left)rightHeight : height(root.Right)if leftHeight -1 || rightHeight -1 …

二手车经营效率罗盘,用经营效率罗盘玩转二手车生意

课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/89292198 更多资源下载&#xff1a;关注我。 带你了解不一样的二手车圈让二手车经营更高效 课程介绍 随着时代不断发展&#xff0c;二手车行业迎来了快速变革期。二手车有着一车一况、一车一价非标和价…

MCF-Microbial Cell Factories

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Microbial Cell Factories 是一份开放的同行评审期刊&#xff0c;涵盖了与微生物细胞作为重组蛋白和天然产物的生产者或作为工业兴趣的生物转化的催化剂的开发、使用和研究相关的任何主题…

一、Elasticsearch介绍与部署

目录 一、什么是Elasticsearch 二、安装Elasticsearch 三、配置es 四、启动es 1、下载安装elasticsearch的插件head 2、在浏览器&#xff0c;加载扩展程序 3、运行扩展程序 4、输入es地址就可以了 五、Elasticsearch 创建、查看、删除索引、创建、查看、修改、删除文档…

网络拓扑—WEB-IIS服务搭建

文章目录 WEB-IIS服务搭建网络拓扑配置网络IISPC 安装IIS服务配置IIS服务&#xff08;默认站点&#xff09;PC机访问网页 配置IIS服务&#xff08;新建站点&#xff09;PC机访问网页 WEB-IIS服务搭建 网络拓扑 //交换机忽略不计 IIS服务IP&#xff1a;192.168.1.1 PC机IP&…

wordpress主题模板兔Modown 9.1开心版附送erphpdown v17.1插件

Modown 9.1开心版是一款模板兔开发的wordpress主题可&#xff0c;持续更新多年&#xff0c;优秀的资源下载类主题该模板基于Erphpdown&#xff0c;可以销售软件、视频教程、文章等等&#xff0c;通过主题和插件结合可以实现付费下载、付费阅读等功能&#xff0c;配合模板兔的一…

子比主题ACG美化插件[全开源]

WordPress插件是一种可以扩展和增强WordPress网站功能的应用程序。子比主题ACG美化插件听起来像是一个专门为ACG&#xff08;动画、漫画、游戏&#xff09;爱好者设计的美化插件&#xff0c;它可能包含多种功能来改善网站的外观和用户体验。 内置功能开关100意味着这个插件提供…

MySQL主从复制(四):主备切换

一主多从结果&#xff1a; 图中&#xff0c; 虚线箭头表示的是主备关系&#xff0c; 也就是A和A’互为主备&#xff0c; 从库B、 C、 D指向的是主库A。 一主多从的设置&#xff0c; 一般用于读写分离&#xff0c; 主库负责所有的写入和一部分读&#xff0c; 其他的读请求则由从…

几个速度比较快的 Linux 开源镜像站及支持的资源列表

搜狐开源镜像站 https://mirrors.sohu.com/ File Name CPAN/ FreeBSD/ QpenBSD/ RockyL apache/ archlinux/ centos/ ceph/ cygwin/ debian/ debian–cd/ debian-security/ deepin/ deepin-cd/ docker-ce/ fedora/ fedora-epel/ gentoo/ lib/ mysql/ nginx/ opensuse/ php/ ubu…

Three.js 研究:1、如何让物体动起来

1、制作模型动画 2、模型动画在代码中的调用 使用这个例子进行修改&#xff0c;使他能动作webgl_animation_skinning_morph.html 制作好的模型放到如下路径 /three.js-master/examples/models/gltf/无标题.gltf修改加载模型文件的地址 修改动画名称 运行 点击动画后&…

高效写代码java-推荐插件1(格式转化 ConverterX )-日后待更新

ConverterX 主要功能:格式转化 字符串格式转换 日期转换 Json格式转义 字符格式 快捷键 ctrl shiftS Upper(CODEEASE)字符串全部变成大写Lower(codeease)字符串全部变成小写Camel(codeEase)字符串变成小驼峰ClassCaemel(CodeEase)字符串变成大驼峰UnderlineUpper(CODE_EAS…