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

C++ day8——模版

笔记脑图

作业

template <class T>
class mylist{
public:// 这是一个链表的节点struct Link{T val;Link* next;    } 增 :insert(T val) 在链表中创建新节点,节点上保存的数据为 val删:remove(T val)  移除链表中数据为 val 的节点改: operator[](int index) 将第index的节点修改排序:sort遍历:show 输出链表中所有节点上 val
private:Link * head; // 记录链表的头节点的指针Link* tail;  // 记录链表的为节点的指针   

代码

#include <iostream>using namespace std;
template <class T>
class mylist
{
public:// 这是一个链表的节点struct Link{T val;Link* next;int len;//链表长度};//增void insert(T val); //在链表中创建新节点,节点上保存的数据为 val//删void remove(T val);  //移除链表中数据为 val 的节点//改void operator[](int index); //将第index的节点修改//排序void sort();//遍历void show(); //输出链表中所有节点上 valmylist();~mylist();mylist& operator<<(T val);
private:Link * head; // 记录链表的头节点的指针Link* tail; // 记录链表的为节点的指针
};
template <typename T>
mylist<T>& mylist<T>::operator<<(T val)
{insert(val);return *this;
}
//申请空间
template <typename T>
mylist<T>::mylist()
{head=new Link;head->len=0;head->next=NULL;
}
template <typename T>
mylist<T>::~mylist()
{delete[] head;
}
//增(头插)
template <typename T>
void mylist<T>::insert(T val)
{Link* p=new Link;p->val=val;p->next=head->next;head->next=p;head->len++;
}
//删
template <typename T>
void mylist<T>::remove(T val)
{int i,flag=0;Link* t=head;for(i=0;i<head->len;i++){if(t->next->val==val){Link *Q=t->next;t->next=t->next->next;delete Q;Q=NULL;head->len--;flag=1;}t=t->next;}if(flag==0){cout<<"删除失败"<<endl;}
}
//改
template <typename T>
void mylist<T>::operator[](int index)
{int i;Link* t=head;for(i=0;i<index;i++){t=t->next;}t->val=100;
}
//排序
template <typename T>
void mylist<T>::sort()
{int i;T t;Link * j;for(i=1;i<head->len;i++){for(j=head->next;j->next!=NULL;j=j->next){if(j->val>j->next->val){t = j->val;j->val = j->next->val;j->next->val = t;}}}
}
//遍历
template <typename T>
void mylist<T>::show()
{int i;Link *t=head;for(i=0;i<head->len;i++){t=t->next;cout<<t->val<<" ";}cout<<endl;
}
int main()
{mylist<int> v;v<<3<<2<<4<<1<<5<<8<<7<<9;v.show();int a;cout<<"请输入要删除的值:"<<endl;cin>>a;v.remove(a);v.show();int b;cout<<"请输入要修改的位置:"<<endl;cin>>b;v.operator[](b);v.show();cout<<"排序"<<endl;v.sort();v.show();return 0;
}

结果

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

相关文章:

  • 【CSS in Depth 2 精译_080】 13.1:CSS 渐变效果(中)——不同色彩空间的颜色插值算法在 CSS 渐变中的应用
  • 红日靶场1(搭建打靶)
  • LivePortrait 部署笔记
  • Greenhills Lib操作-查看Lib信息与将lib中的data段link到指定区域
  • 【十进制整数转换为其他进制数——短除形式的贪心算法】
  • 【JavaEE】网络(2)
  • AI for Science 的完美实践——科研文献的智慧化提取获得“综述性文摘”的软件开发
  • 前端使用xlsx.js实现 Excel 文件的导入与导出功能
  • React简单了解
  • backbone 和Run-Length Encoding (RLE)含义
  • 在Centos7上安装MySQL数据库 How to install MySQL on Centos 7
  • Linux docker-20.10.9安装
  • 操作系统(13)虚拟存储器
  • 《面向对象综合训练01~05》
  • 电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?
  • huggingface NLP-微调一个预训练模型
  • 【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
  • Spring AI API 介绍
  • 【MySQL】Linux使用C语言连接安装
  • 2024年第十五届蓝桥杯青少组C++国赛—割点
  • 【软件开发】做出技术决策
  • Airborne使用教程
  • WPF实现曲线数据展示【案例:震动数据分析】
  • EasyExcel 动态设置表格的背景颜色和排列
  • 【 C++11 】类的新功能
  • 防止SQL注入:PHP安全最佳实践
  • 自动化生产或质量检测准备工作杂记
  • 张志辰医生
  • CodeMirror 如何动态更新definemode
  • 舵机SG90详解