C++ 数据结构线性表-数组实现
发布时间 - 2026-01-11 02:02:00 点击率:次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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Laravel如何生成URL和重定向?(路由助手函数)
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
node.js报错:Cannot find module 'ejs'的解决办法
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel如何处理异常和错误?(Handler示例)
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何快速登录WAP自助建站平台?
黑客入侵网站服务器的常见手法有哪些?
如何利用DOS批处理实现定时关机操作详解
Mybatis 中的insertOrUpdate操作
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel如何创建自定义Artisan命令?(代码示例)
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何续费美橙建站之星域名及服务?
如何在IIS中配置站点IP、端口及主机头?
EditPlus中的正则表达式 实战(1)
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何实现模型的全局作用域?(Global Scope示例)
如何基于云服务器快速搭建网站及云盘系统?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
怎样使用JSON进行数据交换_它有什么限制
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel storage目录权限问题_Laravel文件写入权限设置
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何自定义建站之星网站的导航菜单样式?
西安专业网站制作公司有哪些,陕西省建行官方网站?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Linux后台任务运行方法_nohup与&使用技巧【技巧】
如何快速搭建高效服务器建站系统?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
如何用PHP工具快速搭建高效网站?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何在Windows 2008云服务器安全搭建网站?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何批量查询域名的建站时间记录?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Android中AutoCompleteTextView自动提示
Laravel怎么实现验证码(Captcha)功能
历史网站制作软件,华为如何找回被删除的网站?
详解jQuery中基本的动画方法
高端云建站费用究竟需要多少预算?
下一篇:Debian中env变量如何加密
下一篇:Debian中env变量如何加密

