0828作业+梳理

一、作业

代码:

#include <iostream>using namespace std;using datatype = int; //类型重命名
#define MAX 2        //宏定义
//结构体定义
struct Sqlist
{
private:datatype *data;       //顺序表数组int size = 0;         //数组大小int len = 0;          //数组实际长度
public://初始化函数void init(int s){size = s;                      //当前数组的最大容量data = new datatype(size);     //在堆区申请一个顺序表容量为size}//判空函数bool empty();//判满函数bool full();//添加数据函数bool add(datatype e);//当前顺序表实际长度int length();//任意位置插入bool insert_pos(int pos,datatype e);//任意位置删除bool delete_pos(int pos);//访问容器中任意一个元素 atdatatype &at(int index){return data[index-1];}//展示数组所有内容void output(){cout<<"顺序表中数组如下:"<<endl;for(int i=0;i<len;i++){cout<<data[i]<<"    ";}cout<<endl;}//二倍扩容void expend();
};
/*****************定义结构体内公共函数******************/
int Sqlist::length()
{return len;
}
bool Sqlist::empty()
{int llen = length();if(llen==0){cout<<"顺序表为空"<<endl;return 1;}return 0;
}
bool Sqlist::full()
{int llen = length();if(llen==size){cout<<"顺序表已满"<<endl;return  1;}return 0;
}
bool Sqlist::add(datatype e)
{//判满if(full()==1){expend();}//加入数据data[len] = e;len++;return 1;
}
bool Sqlist::insert_pos(int pos, datatype e)
{//加入数据if(add(e)==1){//把数据放入指定位置for(int i=len-1;i>=pos;i--){data[i+1] = data[i];}data[pos] = data[len];cout<<"数据添加成功"<<endl;return 1;}cout<<"添加失败"<<endl;return  0;
}
bool Sqlist::delete_pos(int pos)
{//判空if(empty()==1){cout<<"顺序表数组已空不能再删除了"<<endl;return 0;}//删除指定位置数据for(int i=pos+1;i<len;i++){data[i-1] = data[i];}len--;cout<<"数据删除成功"<<endl;return 1;
}void Sqlist::expend()
{//判满if(full()==0){return;}//初始化一个新堆区空间int new_size = 2*size;init(new_size);cout<<"扩容成功"<<endl;
}/*******************主程序*************************/
int main()
{Sqlist s1;        //定义一个结构体变量s1.init(MAX);     //初始化//插入数据while(1){int pos;datatype e;cout<<"请输入要放入的数据和位置"<<endl;cin>>e>>pos;//退出插入条件if(pos == -1){break;}s1.insert_pos(pos,e);}//删除数据while(1){int pos;cout<<"请输入要删除的数据位置"<<endl;cin>>pos;//退出删除条件if(pos == -1){break;}s1.delete_pos(pos);}//展示顺序表内容s1.output();return 0;
}

运行结果:

二、思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 16.04下Firefox版本更新

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 在Ubuntu 16.04上更新Firefox的过程可能涉及多个步骤&#xff0c;具体取决于你的需求&#xff0c;比如是要安装一个稳定版本&#xff0c;还是需要使用最新的开发者版本或beta版本。下面我将详细介绍如何在Ub…

Python酷库之旅-第三方库Pandas(105)

目录 一、用法精讲 456、pandas.DataFrame.rdiv方法 456-1、语法 456-2、参数 456-3、功能 456-4、返回值 456-5、说明 456-6、用法 456-6-1、数据准备 456-6-2、代码示例 456-6-3、结果输出 457、pandas.DataFrame.rtruediv方法 457-1、语法 457-2、参数 457-3…

搭建面向切面编程项目

此项目在整合Mybatis基础上修改&#xff0c;可参考主页的整合Mybatis文章 注解版本 第一步 引入maven坐标 <!-- 切面编程所需jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>…

学生管理系统升级(登录注册 + 关联学生管理系统)

新增需求 这是在昨天的基础初代版本上面新增一个登录注册忘记密码的功能 需求分析 注册 登录 忘记密码 user类代码呈现 package StudentSystem;public class User {private String username;private String password;private String personID;private String phoneNumber;pu…

PHP同城派送多区域运营配送小程序源码

&#x1f69a;&#x1f4a8;「同城派送多区域运营小程序」——让每一份需求快速触达&#xff01;&#x1f308;&#x1f680; &#x1f525; 开篇燃爆&#xff1a;同城生活新风尚&#xff0c;一键速达不是梦&#xff01; Hey小伙伴们&#xff0c;你还在为找不到合适的同城服务…

推荐并整理一波vscode插件(哪些内置了,哪些好用)

文章目录 背景现在还在用的&#xff08;21款&#xff09;Chinese(Simplified)简体中文Chinese LoremLorem ipsumCode Runner&#xff08;很推荐&#xff09;Codeium: AI Coding Autocomplete&#xff08;推荐&#xff09;Draw.io IntegrationESLintHighlight Matching TagJavaS…

数学建模学习(125):使用Python实现Borda计数法进行多标准决策分析

文章目录 1. 背景2. 理论与原理3. 案例背景与数据构建4. Python代码实现5. 代码解析与结果解读参考文献1. 背景 Borda计数法由法国数学家Jean-Charles de Borda于1781年提出,是一种用于多选项投票系统的排名方法。它被广泛应用于多标准决策分析(MCDA)中,以解决在复杂的决策…

甄选范文“论软件系统建模方法及其应用”,软考高级论文,系统架构设计师论文

论文真题 软件系统建模(Software System Modeling)是软件开发中的重要环节,通过构建软件系统模型可以帮助系统开发人员理解系统、抽取业务过程和管理系统的复杂性,也可以方便各类人员之间的交流。软件系统建模是在系统需求分析和系统实现之间架起的一座桥梁,系统开发人员…

SQL的瑞士军刀:COALESCE与NULLIF的巧用

标题&#xff1a;SQL的瑞士军刀&#xff1a;COALESCE与NULLIF的巧用 在数据库的世界中&#xff0c;COALESCE和NULLIF是两个强大的SQL函数&#xff0c;它们在处理NULL值时发挥着至关重要的作用。本文将深入探讨这两个函数的用途、原理以及实际应用&#xff0c;并通过代码示例展…

【二叉树】OJ题目

&#x1f31f;个人主页&#xff1a;落叶 目录 单值⼆叉树 【单值二叉树】代码 相同的树 【相同二叉树】代码 对称⼆叉树 【对称二叉树】代码 另一颗树的子树 【另一颗树的子树】代码 二叉树的前序遍历 【二叉树前序遍历】代码 二叉树的中序遍历 【二叉树中序遍历】…

NVIDIA将在Hot Chips 2024会议上展示Blackwell服务器装置

NVIDIA 将在 Hot Chips 2024 上展示其 Blackwell 技术堆栈&#xff0c;并在本周末和下周的主要活动中进行会前演示。对于 NVIDIA 发烧友来说&#xff0c;这是一个激动人心的时刻&#xff0c;他们将深入了解NVIDIA的一些最新技术。然而&#xff0c;Blackwell GPU 的潜在延迟可能…

#LeetCode# 128.最长连续序列 (哈希+前驱数判定)

题目描述 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&…

Python常见字典与异常处理错误与解决方案

在Python中&#xff0c;字典&#xff08;dict&#xff09;和异常处理&#xff08;try...except&#xff09;是编程中常用的两个概念。字典用于存储键值对&#xff0c;而异常处理用于捕获和处理程序运行时可能出现的错误。下面我将列出9个常见的字典相关错误和异常处理相关的错误…

OPENAI开放微调功能

2023年8月23日&#xff0c;OpenAI宣布推出基于GPT-3.5 Turbo的微调功能并更新API&#xff0c;让企业、开发人员能够使用自身数据定制ChatGPT。 微调&#xff08;Fine-tuning&#xff09;是一种利用已有通用语言模型&#xff08;如GPT-3.5&#xff09;来训练一个特定模型的方法…

【freeDiameter】服务端和客户端的连接流程

连接流程详解 进程启动时&#xff0c;先使用main_cmdline解析命令行参数&#xff0c;比如使用-c就会使用指定路径的配置文件&#xff0c;使用-d就会启用后台进程。 之后使用fd_core_initialize初始化核心库。具体会先使用fd_conf_init初始化配置&#xff0c;比如设置各项的默…

最长的一帧学习 part3

文章目录 八、osgUtil:: SceneView::cull ()part1 初始化必要的SceneView类成员变量part2 立体显示的处理part3 执行SceneView::cullStage函数&#xff0c;它也是场景视图筛选工作的核心函数part3.1 首先统计场景中的遮挡节点&#xff08;OccluderNode&#xff09;&#xff0c;…

缺失ffmpeg.dll要用什么修复方法?快速恢复丢失的ffmpeg.dll文件

多媒体软件用户常常会遭遇一个提示&#xff1a;系统无法找到ffmpeg.dll文件。这类情况经常在启动视频编辑软件、流媒体播放应用或其他音视频处理工具时出现&#xff0c;导致相关程序无法正确加载和执行。ffmpeg.dll是一种关键的动态链接库文件&#xff0c;负责处理复杂的视频和…

ssrf+redis未授权访问漏洞复现

ssrfredis未授权访问漏洞复现 一&#xff0c;pikachu靶场练习 docker拉取环境&#xff1a; docker run -d -p 8765:80 8023/pikachu-expect:latest国内很多加速源都用不成&#xff0c;配置代理拉取即可&#xff0c;配置方式如下&#xff1a; 1&#xff0c;新建目录 mkdir -…

Spring Boot如何解决跨域问题?

1.什么是跨域&#xff1f; 跨域请求&#xff0c;就是说浏览器在执行脚本文件的ajax请求时&#xff0c;脚本文件所在的服务地址和请求的服务地址不一样。说白了就是ip、网络协议、端口都一样的时候&#xff0c;就是同一个域&#xff0c;否则就是跨域。这是由于Netscape提出一个…

数据结构与算法的代码实现(C++版)

数据结构与算法的代码实现&#xff08;C版&#xff09; 1. 线性表的顺序表示和实现1.1 线性表的初始化1.2 线性表的销毁1.3 线性表的清空1.4 线性表的长度1.5 判断线性表是否为空1.6 线性表的线性表取值1.7 线性表的顺序查找1.8 线性表的插入1.9 线性表的删除总结 2. 线性表的链…