C++ day03

server/2024/9/25 12:16:46/

思维导图 

 

 

 

头文件

#ifndef SEQLIST_H
#define SEQLIST_Husing datatype = int;class seqlist
{
private:datatype *ptr;  // 动态数组指针int size;       // 顺序表最大容量int len = 0;    // 当前长度public:void init(int n);          // 初始化顺序表bool empty();              // 判断是否为空bool full();               // 判断是否已满void push_back(datatype e); // 在顺序表末尾添加元素void show();               // 显示顺序表中的元素void insert(int n, datatype e); // 在指定位置插入元素void erase(int n);         // 删除指定位置的元素void pop_back();           // 删除末尾元素void getany(int n);        // 获取任意位置的元素void sort(int n);          // 排序,输入1为升序,输入0为降序
};#endif

源文件 

#include "seqlist.h"
#include <iostream>
using namespace std;// 初始化顺序表
void seqlist::init(int n)
{this->ptr = new datatype[n];this->len = 0;this->size = n;
}// 判断是否为空
bool seqlist::empty()
{return this->len == 0;
}// 判断是否已满
bool seqlist::full()
{return this->len == this->size;
}// 在顺序表末尾添加元素
void seqlist::push_back(datatype e)
{if (this->full()){return;}else{this->ptr[this->len++] = e;}
}// 显示顺序表中的元素
void seqlist::show()
{cout << "当前顺序表的元素是: ";for (int i = 0; i < this->len; i++){cout << this->ptr[i] << " ";}cout << endl;
}// 在指定位置插入元素
void seqlist::insert(int n, datatype e)
{if (this->full()){return;}else{for (int i = this->len; i >= n; i--){this->ptr[i] = this->ptr[i - 1];}this->ptr[n - 1] = e;this->len++;}
}// 删除指定位置的元素
void seqlist::erase(int n)
{if (this->empty()){return;}else{for (int i = n - 1; i < this->len - 1; i++){this->ptr[i] = this->ptr[i + 1];}this->len--;}
}// 删除末尾元素
void seqlist::pop_back()
{if (this->empty()){return;}else{this->ptr[this->len--] = 0;}
}// 获取任意位置的元素
void seqlist::getany(int n)
{if (n > 0 && n <= this->len){cout << "位置 " << n << " 的元素是: " << this->ptr[n - 1] << endl;}else{cout << "位置无效" << endl;}
}// 排序,输入1为升序,输入0为降序
void seqlist::sort(int n)
{if (n == 1) // 升序排序{for (int i = 0; i < this->len - 1; i++){for (int j = 0; j < this->len - i - 1; j++){if (this->ptr[j] > this->ptr[j + 1]){swap(this->ptr[j], this->ptr[j + 1]);}}}}else if (n == 0) // 降序排序{for (int i = 0; i < this->len - 1; i++){for (int j = 0; j < this->len - i - 1; j++){if (this->ptr[j] < this->ptr[j + 1]){swap(this->ptr[j], this->ptr[j + 1]);}}}}
}

主函数 

#include "seqlist.h"
#include <iostream>
using namespace std;int main()
{seqlist s1;s1.init(8);         // 初始化顺序表,容量为5s1.push_back(1);s1.push_back(2);s1.push_back(3);s1.push_back(5);s1.push_back(6);s1.push_back(7);s1.show();          // 显示顺序表s1.insert(2, 4);    // 在第2个位置插入元素4s1.show();          // 显示顺序表s1.erase(2);        // 删除第2个位置的元素s1.show();          // 显示顺序表s1.pop_back();      // 删除末尾元素s1.show();          // 显示顺序表s1.getany(2);       // 获取第2个位置的元素s1.sort(1);         // 升序排序s1.show();          // 显示顺序表s1.sort(0);         // 降序排序s1.show();          // 显示顺序表return 0;
}


http://www.ppmy.cn/server/121819.html

相关文章

Shopee 大促想爆单如何准备?EasyBoss ERP为你准备了一份攻略!

Shopee下半年第二个大促节点——10.10品牌大促即将来到&#xff0c;根据Shopee的官方的数据&#xff0c;9.9大促当天&#xff0c;Shopee Mall单量增至平日4倍。 老板们&#xff0c;准备好自己的热卖爆款冲击10.10大促了吗&#xff1f; 图源&#xff1a;Shopee 为助力大家迎战大…

关于ClickHouse建表 集群表 SQL

下面将介绍一下 ClickHouse 建表SQL ,集群名 star_cluster 我这里以test 表 test_all 集群表 为演示 可以执行下面的SQL 新建本地表 DROP TABLE IF EXISTS test ON CLUSTER star_cluster; DROP TABLE IF EXISTS test_all ON CLUSTER star_cluster; CREATE TABLE test …

MySQL数据库的备份与恢复

MySQL数据库的备份与恢复 在现代信息时代&#xff0c;数据已成为企业和个人的重要资产&#xff0c;数据的安全性和可恢复性直接影响到业务的连续性和稳定性。MySQL作为广泛使用的关系型数据库管理系统&#xff0c;其数据的备份与恢复显得尤为重要。本文将详细探讨MySQL数据库的…

新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面

一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言&#xff0c;首先收集了10种中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;然…

20240924前端-----------a标签报错跨域

a标签下载提示跨域 {“result”:“csrf error”} 问题描述&#xff1a; 直接点击a标签下载不了&#xff0c;必须刷新一下下载链接 解决办法&#xff1a; 在a标签增加 rel“nofollow noreferrer” <a href"https://xxxx.pdf" rel"nofollow noreferrer&qu…

鸿蒙跨端实践-长列表解决方案和性能优化

这是我参加创作者计划的第一篇文章。 前言 长列表是前端和客户端应用中最常见的业务场景&#xff0c;比如商品瀑布流等&#xff0c;有成千上万条数据&#xff0c;因此长列表的渲染性能在iOS&#xff0c;Android&#xff0c;Harmony&#xff0c;Web等各大平台都非常重要。Harmon…

「JavaScript深入」彻底理解JS中的闭包

JavaScript深入 — 闭包 一、概念二、示例三、实用的闭包四、用闭包模拟私有方法五、一个常见错误&#xff1a;在循环中创建闭包&#x1f330; 另一个经典例子-定时器与闭包 六、优劣好处坏处解决 七、图解闭包八、应用 &#x1f4aa;封装私有变量函数工厂异步操作中的回调函数…

《让手机秒变超级电脑!ToDesk云电脑、易腾云、青椒云移动端深度体验》

前言 科技发展到如今2024年&#xff0c;可以说每一年都在发生翻天覆地的变化。云电脑这个市场近年来迅速发展&#xff0c;无需购买和维护额外的硬件就可以体验到电脑端顶配的性能和体验&#xff0c;并且移动端也可以带来非凡体验。我们在外出办公随身没有携带电脑情况下&#x…