C++ 数据结构线性表-数组实现

线性表的数组实现,实现几个核心的功能,语言是C++,如果有更好的想法和意见,欢迎留言~~~
/* Author : Moyiii
* 线性表的数组实现,仅作学习之用,当然如果
* 你想拿去用,随你好啦。
*/
#include<iostream>
using namespace std;
//顺序表
class SeqList
{
public:
//构造函数,接受一个默认的列表大小
SeqList(int size = MAX_LIST_SIZE);
//析构函数,释放elems占用的内存空间
~SeqList();
//清空表
void clear();
//判断表是否为空
bool isEmpty();
//获得表的当前元素个数
int getLength();
//在第pos个元素位置之前插入一个新元素
bool insertElem(int pos, int elem);
//删除第pos个元素
bool deleteElem(int pos);
//打印表中元素
void print();
int *elems;//表元素,
private:
static const int MAX_LIST_SIZE;
int m_length;//表的元素个数
int m_size;//表的当前最大长度
};
SeqList :: SeqList(int size)
{
//size不可以小于零,也不可以超过系统规定最大长度
//否则做截断处理
if(size > MAX_LIST_SIZE)
{
m_size = MAX_LIST_SIZE;
}
else if(size < 0)
{
m_size = 0;
}
else
{
m_size = size;
}
elems = new int[m_size];
m_length = 0;
if(!elems)
{
cout << "Space allocate failed!" << endl;
}
}
SeqList :: ~SeqList()
{
delete []elems;
}
void SeqList :: clear()
{
m_length = 0;
}
bool SeqList :: isEmpty()
{
if(m_length == 0)
{
return true;
}
else
{
return false;
}
}
int SeqList :: getLength()
{
return m_length;
}
bool SeqList :: insertElem(int pos, int elem)
{
if(m_length == m_size)
{
cout << "List is Full" << endl;
return false;
}
if(pos < 1 || pos > m_length + 1)
{
cout << "Over Bound!" << endl;
return false;
}
//插入位置之后元素后移
for(int i = m_length; i >= pos - 1; --i)
{
elems[i+1] = elems[i];
}
elems[pos-1] = elem;
m_length++;
return true;
}
bool SeqList :: deleteElem(int pos)
{
if(pos < 1 || pos > m_length)
{
return false;
}
for(int i = pos - 1; i <= m_length - 1; ++i)
{
elems[i] = elems[i+1];
}
m_length--;
return false;
}
void SeqList :: print()
{
for(int i = 0; i < m_length; ++i)
{
cout << elems[i] << " ";
}
cout << endl;
}
//初始化
const int SeqList :: MAX_LIST_SIZE = 100;
int main()
{
SeqList myList;
for(int i = 1; i <= 10; ++i)
{
myList.insertElem(1,i);
}
myList.print();
cout << "Length= " << myList.getLength() <<endl;
myList.deleteElem(5);
myList.print();
cout << "Length= " << myList.getLength() <<endl;
myList.clear();
cout << myList.isEmpty() << endl;
return 0;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C++
# 数据结构线性表数组
# 数组
# C++语言实现线性表之数组实例
# C++语言实现线性表之链表实例
# 解析C++的线性表链式存储设计与相关的API实现
# C++实现动态线性表
# C++实现线性表链式存储(单链)
# C++通过类实现线性表
# C、C++线性表基本操作的详细介绍
# 线性表
# 几个
# 也不
# 不可以
# 你想
# 数据结构
# 希望能
# 谢谢大家
# 之用
# 拿去
# 好啦
# 仅作
# 随你
# 清空
# 为空
# 欢迎留言
# 后移
# int
# public
# SeqList
相关文章:
如何通过西部数码建站助手快速创建专业网站?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
网站制作软件有哪些,制图软件有哪些?
建站之星安装后界面空白如何解决?
高防服务器租用如何选择配置与防御等级?
建站主机解析:虚拟主机配置与服务器选择指南
Android自定义控件实现温度旋转按钮效果
制作网站的基本流程,设计网站的软件是什么?
如何在VPS电脑上快速搭建网站?
建站VPS推荐:2025年高性能服务器配置指南
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何零成本快速生成个人自助网站?
无锡营销型网站制作公司,无锡网选车牌流程?
seo网站制作优化,网站SEO优化步骤有哪些?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
如何续费美橙建站之星域名及服务?
Bpmn 2.0的XML文件怎么画流程图
如何在阿里云通过域名搭建网站?
在线教育网站制作平台,山西立德教育官网?
如何在宝塔面板中修改默认建站目录?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
c# 在高并发场景下,委托和接口调用的性能对比
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
建站org新手必看:2024最新搭建流程与模板选择技巧
北京企业网站设计制作公司,北京铁路集团官方网站?
如何确认建站备案号应放置的具体位置?
如何撰写建站申请书?关键要点有哪些?
javascript中对象的定义、使用以及对象和原型链操作小结
如何选择美橙互联多站合一建站方案?
如何获取上海专业网站定制建站电话?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
建站主机是什么?如何选择适合的建站主机?
建站之星如何实现网站加密操作?
建站上市公司网站建设方案与SEO优化服务定制指南
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站主机如何选?性能与价格怎样平衡?
韩国服务器如何优化跨境访问实现高效连接?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
已有域名能否直接搭建网站?
北京的网站制作公司有哪些,哪个视频网站最好?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
*请认真填写需求信息,我们会在24小时内与您取得联系。