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

C++ DAY6 作业

1.用模板类写顺序表

#include <iostream>using namespace std;#define MAXSIZE 10
template <typename T>
class Arr
{T *data =NULL;int len = 0;
public://构造函数Arr():data(new T){}Arr(T a,int len):data(new T(a)),len(len){}//析构函数~Arr(){delete data;}//向顺序表尾插元素void insert_data(Arr &a1,T a);//删除顺序尾删元素void delete_data(Arr &a1);//按照指定值查找元素int search_data(Arr &a1,T a);//遍历void output(Arr a1);};//尾插
template <typename T>
void Arr<T>::insert_data(Arr &a1,T a)
{//判满以及堆区地址是否创建if(a1.len == MAXSIZE || data == NULL){return;}//尾插数据*(a1.data+a1.len) = a;a1.len++;
}
//尾删
template <typename T>
void Arr<T>::delete_data(Arr &a1)
{//判空if(a1.len == 0){return;}//尾删a1.len--;
}
//按照指定值查找元素,返回index下标
template <typename T>
int Arr<T>::search_data(Arr &a1,T a)
{//判空if(a1.len == 0){return -1;}//查找for(int index=0;index<len;index++){if(*(a1.data+index) == a){return index;}}return -1;
}
//遍历
template <typename T>
void Arr<T>::output(Arr a1)
{//判空if(a1.len == 0){return;}for(int i=0; i<len ;i++){cout << *(a1.data+i) << "\t";}cout << endl;
}int main()
{Arr<int> a1;cout << "头插数据:" << endl;a1.insert_data(a1,1);a1.insert_data(a1,2);a1.insert_data(a1,3);a1.insert_data(a1,4);a1.insert_data(a1,5);cout << "遍历结果:" << endl;a1.output(a1);cout << "尾删数据:" << endl;a1.delete_data(a1);cout << "遍历结果:" << endl;a1.output(a1);cout << "查找元素:" << endl;int index = a1.search_data(a1,3);if(index == -1){cout << "查找元素不存在" << endl;}else {cout << "下标为: " << index << endl;}return 0;
}

2.思维导图

http://www.lryc.cn/news/272385.html

相关文章:

  • 华为服务器安装银河麒麟V10操作系统(IBMC安装)
  • macos下php 5.6 7.0 7.4 8.0 8.3 8.4全版本PHP开发环境安装方法
  • Chatgpt为什么像打字机逐字输出?磨洋工,防止数据库被盗
  • ubuntu 卸载桌面
  • Linux文件fd剖析
  • VMWARE ESXi存储多路径策略修改
  • 结构体详解
  • 前端开发个人简历范本(2024最新版-附模板)
  • # 编程语言简史
  • SpringMVC学习与开发(三)
  • JAVA对象、List、Map和JSON之间的相互转换
  • 图像分割-漫水填充法 floodFill
  • Python open函数详解:打开指定文件与 readline和readlines函数:按行读取文件
  • Vue 生命周期有哪些?作用是什么?
  • 《Vue3 前端构建工具》 Vue-cli 与 Vite 创建项目的插件和配置对比
  • springboot(ssm中山社区医疗综合服务平台 医疗管理系统 Java系统
  • Qt编写的exe程序上添加程序信息
  • (一)CarPlay集成开发之概述与环境篇
  • js文件上传 分片上传/断点续传/极速秒传
  • mysql 通过 binglog 恢复数据
  • 【REST2SQL】01RDB关系型数据库REST初设计
  • 图像识别原理
  • 共识算法介绍
  • Gen-AI 的知识图和分析(无需图数据库)
  • flutter 安卓使用高德插件黑屏
  • Java:表单生成excel文档 poi 通用
  • 使用Apache Commons SCXML实现状态机管理
  • 大数据技术原理与应用期末考试题
  • 解决jenkins的Exec command命令不生效,或者执行停不下来的问题
  • 【PHP】json_decode的第二个参数是什么意思