实验一:顺序表

实验一线性表的基本操作实现及其应用 一、实验目的 1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。 2、巩固 C++相关的程序设计方法与技术。 3、学会使用顺序表解决实际问题。 二、实验内容 1、顺序表的建立与操作实现 建立 n 个元素的顺序表(n 的大小和表里数据自己确定),      实现相关的操作:输出,插 入,删除,查找等功能。      编写完整程序实现,程序语言不限定,使用技术形式不定。 三、实 阅读详情

一、实验目的

1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。

2、巩固 C++相关的程序设计方法与技术。

3、学会使用顺序表解决实际问题。 

二、实验内容

1、顺序表的建立与操作实现建立 n 个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插入,删除,查找等功能。

三、代码

由于线性表的数据元素类型不确定,所以采用C++的模板。

#include <iostream>
using namespace std;


const int MaxSize = 100;

template<class DataType>

class SeqList
{
public:
SeqList() { length = 0; }
SeqList(DataType a[], int n);
~SeqList() {};
int Length()
{
return length;
}
DataType Get(int i);
int Locate(DataType x);
void Insert(int i, DataType x);
DataType Delete(int i);
void PrintList();
private:
DataType data[MaxSize];
int  length;
};


//顺序表有参构造函数
template<class DataType>
SeqList<DataType>::SeqList(DataType a[], int n)
{
if (n > MaxSize)
throw "参数非法";
for (int i = 0; i < n; i++)
{
data[i] = a[i];
}
length = n;
}

//顺序表查找算法
template<class DataType>
DataType SeqList<DataType>::Get(int i)
{
if (i<1 && i>length)
throw  "查找位置非法";
else return data[i - 1];
}


//顺序表按值查找位置算法
template<class DataType>
int SeqList<DataType>::Locate(DataType x)
{
for (int i = 0; i < length; i++)
         if (data[i] == x)//下标为1的元素等于x,返回其序号i+1
         return i + 1;
return  0;
}

//顺序表插入算法
template<class DataType>
void  SeqList<DataType>::Insert(int i, DataType x)
{
if (length >= MaxSize)
throw "上溢";
if (i<1 || i>length + 1)
throw "插入位置非法";
for (int j = length; j >= i; j--)
data[j] = data[j - 1];
data[i - 1] = x;
length++;
}


//顺序表删除算法
template<class DataType>
DataType SeqList<DataType>::Delete(int i)
{
if (length == 0)
throw "下溢";
if (i<1 || i>length)
throw "删除位置非法";
DataType x = data[i - 1];
for (int j = i; j < length; j++)
data[j - 1] = data[j];
length--;
return x;
}


//顺序表遍历算法
template<class DataType>
void  SeqList<DataType>::PrintList()
{
for (int i = 0; i < length; i++)
{
cout << data[i] << endl;
}
}


//主方法
int main()
{
int a[10] = { 11,22,33,44,55,66,77,88,99,100 };
SeqList<int>b(a, 10);
cout << "所有数据如下:" << endl;
b.PrintList();
cout << endl;
cout << "线性表的长度为:" <<endl<< b.Length() << endl;
cout << "第十位元素的值为:" << endl;
cout << b.Get(10) << endl;
cout << "查找值为55的元素位置:" << endl;
cout << b.Locate(55) << endl;
cout << "在第二个位置插入值为998的元素" << endl;
try { b.Insert(2, 998); }
catch (char *s)
{
cout << s << endl;
}
b.PrintList();
try { b.Delete(1); }
catch (char *s)
{
cout << s << endl;
}
cout << endl << endl;
cout << "删除第一个元素后的全部数据为:" << endl;
b.PrintList();
cout << endl;
system("pause");

}




四、心得与体会

日久生疏,刚开始敲代码时,在main方法中连函数都忘了怎么引用,还是要多多敲代码的(^ω^)

车载智能终端的设计 本文研究的主要内容是车载智能终端的设计,在学习和借鉴国内外在车载电子领域已有的成熟经验的基础上,利用32位嵌入式处理器S344B0X01和μC/OS-Ⅱ实时操作系统技术,针对汽车行驶记录仪、GPS/GPRS的已有设计的不足提出了新的解决方案,并对方案的可行性进行了分析和论证。 阅读详情

相关推荐

【通信原理 入坑之路】—— 详解IQ调制以及星座图原理

文章目录一. IQ调制与解调的原理与过程二.PSK(相移键控)和IQ调制的关系:2.1 用IQ调制实现QPSK调制 一. IQ调制与解调的原理与过程 IQ调制的定义是:“IQ调制就是数据分为两路,分别进行载波调制,两路载波相互正交。I是in-phase(同相), q是 quadrature(正交)” 我们通过下面的示意图介绍IQ调制的过程: 首先,信号分成两路:I路和Q路(为了方便理解我们把这两...

凝望,划过星空的博客 11万+

『数据结构』顺序表

顺序表简介。顺序表接口实现(C语言和Java)。

叄拾叄画生 679

别再只抄代码了!深入理解MQ2传感器数据手册,搞定ppm换算公式

本文深入解析MQ2烟雾传感器的工作原理与ppm换算公式,从数据手册解读到数学建模,提供详细的校准与优化方法。通过实际案例和代码示例,帮助开发者准确测量气体浓度,解决常见问题,提升传感器应用的可靠性。

weixin_42713608的博客 504

顺序表基本操作(创建、插入、输出)

#include <stdio.h> #include <stdlib.h> #define INIT_SIZE 5 #define INCREM 3 typedef int ElemType; /*顺序表结构*/ typedef struct Sqlist{ ElemType *slist; int length; int listsize; }Sqlist; /*初始化顺序表:创建成功返回1,不成功返回0*/ int initSq(Sqlist *L) { .

qq_57712095的博客 2633

华为防火墙 策略路由实现多ISP接入Internet

PC3上网访问Server1时走ISP1。PC4上网访问Server1时走ISP2。1、配置接口IP并加入相应的安全区域。二、ISP2 运营商 R2路由器。一、ISP1 运营商 R1路由器。

一直被模仿,从未被超越 3015

WOL唤醒配置(以太网、PHY、MAC)

MAC 就是以太网控制器,属于OSI的数字链路层。phy 属于OSI的物理层(Physical layer),所以叫phy。CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。

qq_58264156的博客 8632

顺序表的建立及基本操作

实验内容 1、建立一个顺序表,输入n个元素并输出; 2、查找线性表中的最大元素并输出; 3、在线性表的第i个元素前插入一个正整数x; 4、删除线性表中的第j个元素; 5、将线性表中的元素按升序排列; 6、将线性表中的元素就地逆序(只允许用一个暂存单元); #include<stdio.h> #include<iostream> #define MAXSIZE 100 usi...

gets_s的博客 5450

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1114

数据结构——创建顺序表

一、实验目的1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。 2、巩固 C++相关的程序设计方法与技术。 3、学会使用顺序表解决实际问题。 二、实验内容1、顺序表的建立与操作实现 建立n个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。

Hougeng的博客 4万+

本地部署开源视频会议解决方案 Jitsi Meet 并实现外网访问

Jitsi Meet 是一款基于 WebRTC 技术的开源视频会议解决方案,它允许用户通过互联网进行高质量的视频通话、语音通话和文本聊天,非常适合用于在线教育、远程办公、团队协作等场景。本文将详细介绍如何利用 Docker 在本地部署 Jitsi Meet 并结合路由侠实现外网访问本地部署的 Jitsi Meet。

lyxnwct的博客 1946

YOLOv11 模型轻量化全流程:从剪枝到量化,打造移动端“极速检测利器”

将浮点模型量化为INT8模型,减少内存占用并加速推理。# 加载剪枝后的模型# 转换为TorchScript# 静态量化# 保存量化模型量化后模型推理速度可再提升20%,而mAP损失小于1%。

m0_64661770的博客 465

实验一:顺序表实验报告

一、实验目的 1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。 2、巩固 C++相关的程序设计方法与技术。 3、学会使用顺序表解决实际问题。 二、实验内容 代码如下: const int MaxSize=10; class SeqList {public: SeqList(){length=0;} SeqList(int a[],int n);

Ida_adI的博客 1万+

【DNN实现二分类模型推理部署(C#)----20240712】

【DNN实现二分类模型推理部署(C#)----20240712】

weixin_44119674的博客 212

实验一:顺序表的实现

实验一 顺序表的实现 (1)    实验目的   熟练掌握线性表的结构特点,掌握顺序表的基本操作,巩固c++相关的程序设计方法与技术 (2)    实验内容   建立若干个元素的顺序表 实现相关的操作,输出、插入、删除、查找等功能,编写完整程序实现 (3)    实验步骤 实验程序中用到的数据类型的定义:int、char 相关操作的算法表达: 输入输出,线性表的长度为lengt

grapes1234的博客 4432

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数据结构实验课:实验一、顺序表的实现及应用

一、实验目的 了解和掌握线性表的顺序存储结构;掌握用C语言上机调试线性表的基本方法;掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算,以及对相应算法的性能分析。 二、实验要求 给定一段程序代码,程序代码所完成的功能为:(1)建立一个线性表;(2)依次输入数据元素1,2,3,4,5,6,7,8,9,10;(3)删除数据元素5;(4)依次显示当前线性表中的数据元素。假设该线性表的数据元素个数在最坏情况下不会超过100个,要求使用顺序表。 程序中有3处错误的地方,有标

listboy的博客 1万+

数据结构实验一:顺序表的实现及应用

数据结构实验 实验一:顺序表的实现及应用 实验一:顺序表的实现及应用 一、实验实习目的及要求 了解和掌握线性表的顺序存储结构;掌握用C语言上机调试线性表的基本方法;掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算,以及对相应算法的性能分析。 二、实验实习设备(环境)及要求(软硬件条件) B516/B517实验室,使用VC上机调试出正确结果 三、实验实习项目、内容与步骤 给定一段程序代码,程序代码所完成的功能为:(1)建立一个线性表;(2)依次输入数据元素1,2

weixin_52841358的博客 1万+

数据结构:实验一:顺序表的实现

Windows+DEV C++( 或者其他编译工具)(2)掌握顺序表中的各种基本运算算法设计。如需源文件,请私信作者,无偿。实验源代码及实验结果截图。

菜鸟的博客~ 726

数据结构实验一:顺序表实验

数据结构实验合工大

qq_62442340的博客 1860

实验一:数据结构顺序表的建立

实验一 线性表的基本操作实现及其应用 一、实验目的 1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。 2、巩固 C++相关的程序设计方法与技术。 3、学会使用顺序表解决实际问题。 二、实验内容 1、顺序表的建立与操作实现 建立 n 个元素的顺序表(n 的大小和表里数据自己确定)。 2、实现相关的操作:输出,插入,删除,查找等功能。 3、编写完整程

记录软件测试过程中遇到的问题 9926

数据结构实验一 :顺序表的综合操作

一、实验目的 1.掌握线性表的定义; 2.掌握线性表的顺序存储基本操作,如建立、查找、插入和删除等。 二、实验内容 定义一个包含学生信息(学号,姓名,性别,年龄)的的顺序表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据姓名进行查找,返回此学生的学生信息; (4) 根据指定的位置可返回相应的学生信息; (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数

qq_45158661的博客 6155

实验一:线性表实验-顺序表的实现

1.实验前的概念理解: 线性表(linear list):是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。(是一种逻辑结构,可以自由的删除或添加结点,而受限线性表(栈和队列)对结点的操作受限) 顺序表:在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。 2.实验目的: (1)掌握线性表的顺序储存结构;  (2)验证顺序表及

Corrine951304828的博客 2701

实验一:8578 顺序表逆置

时间限制:1000MS 代码长度限制:10KB提交次数:3660 通过次数:2149题型: 编程题 语言: G++;GCC。

Y_Jiay的博客 344

实验一:顺序表、单链表

单链表的一些操作: ①初始化建立链表 ②输入 ③查找取值 ④插入 ⑤删除 ⑥遍历输出 #include<bits/stdc++.h> #define ENDL puts("") using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void...

道阻且长,行则将至 396

数据结构与算法实验一:顺序表的建立及操作

数据结构与算法实验一:顺序表的建立及操作 顺序表指用一组地址连续的存储单元依次存储线性表的数据元素,其特点是,逻辑上相邻的数据元素,其物理次序也是相邻的。且顺序表的存储结构是一种随机存取的存储结构,只要确定了存储顺序表的起始位置,顺序表中任意数据元素都可随机存储。 实验要求: 建立含n个数据元素的顺序表并输出该表中各元素的值;在有序顺序表L中插入元素x使线性表仍然有序;写一个函数删除有序顺序表中的重复元素。 插入元素: 判断插入位置i 是否合法、顺序表的存储空间是否已满;将第n至第i位的元素依次向后移一个位

weixin_45734308的博客 9142

数据结构实验一:顺序表 C++实现

数据结构实验一:顺序表 C++实现 实验内容要求: 定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能(参见教材中基本操作): (1) 根据指定学生个数,逐个输入学生信息(构建表或产生表); (2) 逐个显示学生表中所有学生的相关信息(显示表,即遍历表); (3) 根据姓名进行查找,返回此学生的学号和成绩(查找); (4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩)(取值 ); (5) 给定一个学生信息,插入到表中指定的位置(插入); (6) 删除指定位置的学生记录(删除

qq_45050714的博客 4041
下一篇: mysql数据库常用操作语句
Coder_xh
博客等级 码龄9年 15粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值