当前位置: 首页 > news >正文

使用C++封装顺序表

作业:使用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;
}

思维导图:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ TinyWebServer项目总结(14. 多线程编程)
  • P2P 文件共享:现代网络中的高效文件传输
  • MySQL主从复制之GTID模式
  • TypeSript11 tsconfig.json配置文件
  • 在容器 (podman) 中运行虚拟机 (QEMU/KVM, libvirt)
  • 从0-1建一个webpack/vue项目,熟悉一下webpack知识点
  • consul 运维中遇到的问题
  • 【jvm】局部变量表与GCRoots之间的关系
  • 仓颉编程语言亮相全国大学生计算机系统能力大赛
  • 摄影曝光:曝光模式认知
  • Jenkins服务安装配置
  • QT: 将QGraphicsScene中的所有QGraphicsItem转化成Gcode
  • 【ORACLE】如何使用EXPLAIN PLAN来分析 listagg() 函数的性能瓶颈?
  • 【OpenGL】xcode+glfw画三角形
  • Oracle 同义词SYNONYM 的实战使用
  • [LeetCode] Wiggle Sort
  • 230. Kth Smallest Element in a BST
  • 4个实用的微服务测试策略
  • Android单元测试 - 几个重要问题
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Flannel解读
  • golang 发送GET和POST示例
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • input的行数自动增减
  • Mocha测试初探
  • mockjs让前端开发独立于后端
  • mysql_config not found
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python利用正则抓取网页内容保存到本地
  • quasar-framework cnodejs社区
  • sublime配置文件
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 想写好前端,先练好内功
  • 原生Ajax
  • 找一份好的前端工作,起点很重要
  • Nginx实现动静分离
  • ​马来语翻译中文去哪比较好?
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • ###C语言程序设计-----C语言学习(6)#
  • $.ajax,axios,fetch三种ajax请求的区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (八十八)VFL语言初步 - 实现布局
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (九)One-Wire总线-DS18B20
  • (离散数学)逻辑连接词
  • (算法)大数的进制转换
  • (转)JAVA中的堆栈
  • *** 2003
  • ***监测系统的构建(chkrootkit )
  • **PHP分步表单提交思路(分页表单提交)