使用C++封装顺序表

news/2024/10/11 11:13:41/

作业:使用C++手动封装一个顺序表,包含成员数组一个,成员变量N个

#include <iostream>using namespace std;using datatype=int;
#define MAX 20struct SeqList
{   private:               //私有datatype *data;int size=0;              //数组的大小int len=0;          //顺序表实际长度public://要实现的函数//初始化void init(int s);//1.判空bool empty();//2.判满bool full();//3.求当前顺序表的实际长度int length();//4.添加数据函数bool add(datatype e);//5.任意位置插入函数bool insert_pos(int pos,datatype e);//6.任意位置删除函数bool delete_pos(int pos);//7.访问容易中任意一个元素atdatatype &at(int index);//遍历数组void show();//销毁void distroy();};//初始化
void SeqList::init(int s)
{size = s;    //此时最大容量data = new datatype(size);    //申请空间
}//1判空
bool SeqList::empty()
{return len==0;
}//2判满
bool SeqList::full()
{return len==size;
}//求当前顺序表的实际长度
int SeqList::length()
{cout<<"当前实际长度:"<<len<<endl;return len;
}//添加数据函数
bool SeqList::add(datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}data[len]=e;len++;cout<<"成功添加!"<<endl;
}//任意位置插入函数
bool SeqList::insert_pos(int pos,datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}for(int i=len-1;i>=pos;i--){data[i+1]=data[i];}data[pos]=e;len++;cout<<"成功添加!"<<endl;
}//6.任意位置删除函数
bool SeqList::delete_pos(int pos)
{//判断是否为空if(empty()){cout<<"为空表,删除失败!"<<endl;return 0;}for(int i=pos-1;i<len;i++){data[i]=data[i+1];}len--;cout<<"成功删除!"<<endl;
}//7访问容器中任意一个元素at
datatype &SeqList::at(int index)
{cout<<data[index]<<endl;return data[index];
}//遍历
void SeqList::show()
{cout<<"数据:";for(int i=0;i<len;i++){cout<<data[i]<<" ";}cout<<endl;
}
//任意位置函数lete_pos(int pos);//释放空间
void SeqList::distroy()
{delete data;
}int main()
{//定义SeqList p1;//调用初始化p1.init(20);//调用添加p1.add(4);p1.add(6);p1.add(8);p1.show();//调用任意位置插入p1.insert_pos(2,9);p1.show();//调用按位置删除p1.delete_pos(2);p1.show();//调用访问元素p1.at(2);//查看当前长度p1.length();//释放p1.distroy();return 0;
}

思维导图:


http://www.ppmy.cn/news/1517547.html

相关文章

期权定价模型(如Black-Scholes模型)和利率模型中的单因子模型的Python实现案例

一&#xff1a;期权定价模型&#xff08;如Black-Scholes模型&#xff09;的实现 期权定价模型&#xff08;如Black-Scholes模型&#xff09;是用来确定期权合理价格的数学模型。这些模型基于一定的假设&#xff0c;考虑了多种因素&#xff0c;如标的资产价格、期权的行权价格…

Java 入门指南:Java IO 设计模式

Java 设计模式是一组被广泛应用于Java程序设计中的解决常见问题的可复用设计方案。这些设计模式通过提供一套经过验证的面向对象的设计原则和思想&#xff0c;可以帮助开发人员更好地组织和设计他们的代码。 在Java IO 中&#xff0c;并没有像创建型、结构型和行为型等常见的设…

前端面试题-Vite的打包速度为什么比Webpack快?

哈喽小伙伴们大家好!今天继续为大家分享一道面试题 大家都知道,Vite和Webpack是前端开发中用来构建项目的两个框架,Webpack是针对Vue2的,而Vite则是为vue3量身定制的,他们有哪些区别呢?为什么我们推荐使用Vite呢?Webpack又有哪些缺点呢?这篇文章我们来一探究竟。 Vite和We…

[翻译+笔记] Score-based generation: 通过数据分布的梯度进行生成建模

本次翻译笔记的是Yang Song博士的博客https://yang-song.net/blog/2021/score/. Yang Song博士提出了一系列的score-based的生成模型, 并对后续Diffusion model也产生了很深远的影响. 1. 引言 生成的基本任务是从某种程度上来估计或采样原始的数据分布. 现有的估计分布的方法大…

《中小学班主任》是什么级别的刊物?核心期刊吗?

《中小学班主任》是什么级别的刊物&#xff1f;核心期刊吗&#xff1f; 《中小学班主任》不是核心期刊&#xff0c;而是一本教育类省级刊物。 该刊旨在为全国中小学班主任提供学术指导&#xff0c;促进专业发展服务&#xff0c;是全国一线班主任和班主任研究者展示专业智慧和…

什么牌子的充电宝质量好?四款口碑极佳充电宝机型大盘点

在快节奏的现代生活中&#xff0c;充电宝已然成为我们不可或缺的随身物品。无论是日常通勤、外出旅行还是学习办公&#xff0c;一个质量上乘的充电宝能为我们的电子设备提供稳定可靠的电力支持。然而&#xff0c;面对市场上众多的充电宝品牌和机型&#xff0c;究竟什么牌子的充…

UE5学习笔记16-游戏模式中的一些事件,如何改变网格体和摄像头的碰撞

一、OnPostLogIn&#xff1a;此事件在玩家成功登录游戏后被调用 二、HandleStartingNuwplayer&#xff1a;在OnPostLogIn事件后被调用&#xff0c;可以用来定义新进入的玩家会发生什么 三、Spawn Default PawnAtTransform&#xff1a;这个事件触发游戏中实际的Pawn生成 四、…

K8S StatefulSet

Kubernetes StatefulSet 是 Kubernetes 中的一个核心概念,用于管理有状态应用的 Pod 部署和伸缩。与无状态应用相比,有状态应用通常需要持久化存储、唯一标识和有序部署等特性,而 StatefulSet 正是为了满足这些需求而设计的。 一、StatefulSet 的特点 稳定的唯一网络标识符…