200917阶段一C++双向链表模板
目录
- 一、学习的知识点
- 模板的继承
- 1类模板继承类模板
- 2类模板继承普通类
- 3普通类继承类模板
- 链表模板
- 类模板
- 类模板实现
- 添加结点
- 删除结点
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
- 四、作业的思路、不会的地方
- 五、其他需要反馈的问题
一、学习的知识点
模板的继承
1类模板继承类模板
//类模板
template <class T,class T>
class CComplex
{public:CComplex();CComplex(T real,T1 imag);private:T real;T1 imag;
};//类模板继承类模板
template <class T,class T1>
class DComplex:public CComplex<T,T1>
{public:private:
};
2类模板继承普通类
//类模板继承普通类
template <class T,class T1>
class CComplex:public Complex
{public:private:T a;T1 b;
};
3普通类继承类模板
//普通类继承类模板 基类里面的数据类型要初始化
class FComplex:public CComplex<int,double>
{public:
private:
};
链表模板
类模板
类模板中的都是函数模板,实现前要加 template
//结点类模板的定义
template <class T>
class Node
{public:Node();~Node();T pdata;Node<T> *pnext; //下一个结点的地址Node<T> *pre; //前一个结点的地址
};
//链表类模板的定义
template <class T>
class CList
{public:CList();~CList();void addNode(T pdata);int getCount();T getNode(int index); //获取结点,返回的类型为Tint removeIndex(int index);
private:Node<T> *head;//链表的头结点int icount;//结点数
};
类模板实现
//类模板实现
template <class T>
Node<T>::Node()
{this->pre=NULL;this->pnext=NULL;
}
//构造函数模板 初始化
template <class T>
CList<T>::CList()
{this->head=new Node<T>;this->head->pre=head;this->head->pnext=head;this->icount=0;
}
添加结点
template <class T>
void CList<T>::addNode(T pdata)
{//第一步 创建新节点Node<T> *newNode=new Node<T>;//第二步 找尾巴结点 Node<T> *ptemp=head;while(ptemp->pnext!=head) //判断当前结点的下一个是否是头,是头结点,就找到了尾巴{ptemp=ptemp->pnext;}//加新节点newNode->pre=ptemp;newNode->pnext=head;newNode->pdata=pdata;ptemp->pnext=newNode;head->pre=newNode;this->icount++;
}
删除结点
template <class T>
int CList<T>::removeIndex(int index)
{Node<T> *ptemp=head;int icount=0;while(ptemp->pnext != head){ptemp=ptemp->pnext;icount++;if(icount==index){ptemp->pre->pnext=ptemp->pnext;ptemp->pnext->pre=ptemp->pre;delete ptemp;return 1;}}return -1;
}
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
双向链表模板与其基本操作
四、作业的思路、不会的地方
参考之前的
五、其他需要反馈的问题
无
200917阶段一C++双向链表模板相关推荐
- binarytreenode”使用 类 模板 需要 模板 参数列表_c++1117 模板核心知识(一)—— 函数模板...
目录 定义函数模板 使用函数模板 两阶段翻译 Two-Phase Translation 模板的编译和链接问题 多模板参数 引入额外模板参数作为返回值类型 让编译器自己找出返回值类型 将返回值声明为两 ...
- 前端模板引擎Thymeleaf快速入门
文章目录 1. Thymeleaf特点 2. 提供数据 3. 引入启动器 4. 静态页面 5. 测试 6.模板缓存 1. Thymeleaf特点 简单说, Thymeleaf 是一个跟 Velocit ...
- 【手绘漫画】面试必考之手撕双链表(解题模板和深度剖析),(LeetCode 707)
文章目录 图解算法与数据结构 1.前言 2.代码 3.正文 4.实例 图解算法与数据结构 1.前言 今天开始链表,这一讲是单链表,下一讲是双链表. 下面一起来看看吧!!! 2.代码 模板: //C++ ...
- D3D11的深度模板缓冲
创建深度模板缓冲,随后创建深度模板视图并将它绑定到管线的OM阶段.绑定深度模板视图到OM阶段将会运行它检测渲染目标上的每个像素片段的深度值.若在渲染目标上的点内有不止一个像素片段,深度值最低的像素(离 ...
- C/C++内存管理与函数模板
C/C++内存管理与函数模板 文章目录 1.C/C++内存分布 2.C语言中动态内存管理方式 3.C++内存管理方式 4.operator new和operator delete函数 5.内存泄漏 6 ...
- Spring Boot下载Excel模板,内容乱码解决方法
昨天说了下载excel模板是空的问题以及解决方案,今天突然想起来在本地开发时遇到的一个小坑(其实还是自己见识的太少而已),问题是这样的: 在开发阶段,将excel模板放到项目中,然后读取下载,发现下载 ...
- C++模板类详解及注意事项
C++模板类 C++中有一个重要特性,那就是模板类型.类似于Objective-C中的泛型,C++通过类模板来实现泛型支持.它使用参数化的类型创建相应的函数和类,分别称之为函数模板和类模板. 模板是一 ...
- dx12 龙书第十一章学习笔记 -- 模板
模板缓冲区是一种"离屏"(off-screen)缓冲区,我们可以用它来实现一些特殊的效果.模板缓冲区.后台缓冲区以及深度缓冲区都有着相同的分辨率,所以三者相同位置上的像素就能一一对 ...
- C++模板编程Demo
PS:今天在网上看到一篇讲C++模板编程的博客,还算是比较的通俗易懂,在这里留一份,没事看看...... 当我们越来越多的使用C++的特性, 将越来越多的问题和事物抽象成对象时, 我们不难发现:很多对 ...
最新文章
- GLSL. 语法基础
- layui关闭表格编辑_告别复制粘贴,表格再多也能快速合并!
- 第一份工作是选择安逸,还是勇敢尝试?
- Spark 调用 hive使用动态分区插入数据
- atom 快速编写html,Atom 编辑器自定义代码段(snippet)
- 4月1日起 理想ONE零售价由33.8万元上调至34.98万元
- 您的包裹“ MySQL灵魂十连” 待签收
- Kylin 对维度表的的要求
- 爬虫python下载视频_利用python爬虫通过m3u8文件下载ts视频
- 电工知识:3种方法测电容的好坏,万用表三个档位的巧妙应用
- P1347 排序(topo)
- 目标检测中文类别--在图片中添加汉字
- 常说的LDO电路是啥?(简单版)
- 信息抽取之实体消歧,统一
- 各大浏览器清除缓存(cache)详细步骤
- SQLServer uniqueidentifier 类型
- ubuntu下安装google拼音输入法
- 【BZOJ1791】【IOI2008】【基环树】island(status第一速度)
- 4月17日黑客攻击事件简讯
- 45个jQuery的导航插件和教程
热门文章
- 在Tomcat下JSP、Servlet和JavaBean环境的配置
- How to mount HFS EFI on macOS
- [APIO2018] Duathlon 铁人两项
- 饿了么CTO张雪峰:允许90后的技术人员“浮躁“一点
- FFMPEG系列课程(一)打开视频解码器
- haproxy配置参数详解
- C# Stream 和 byte[] 之间的转换(文件流的应用)
- 数据库时间字段排序问题
- Github 上 36 个最实用的 Vue 开源库
- html+下拉箭头样式,HTML选择下拉箭头样式