C++学习笔记47:链表的概念与结点类模板
学堂在线学习笔记
链表的概念与结点类模板
顺序访问的线性群体--链表类
链表是一种动态数据结构,可以用来表示顺序访问的线性群体;
链表是由系列结点组成,结点可以在运行时动态生成;
每一个结点包括数据域和指向链表中下一个结点的指针(即下一个结点的地址)。如链表中每个结点中只有一个指向后继结点的指针,则该链表称为单链表;

单链表的结点类模板
template <class T>
void Node<T>::insertAfter(Node<T> *p)
{
//p结点指针域指向当前结点的后继结点
p->next = next;
next = p;//当前结点的指针域指向p
}

删除结点之后的结点:
Node<T> *Node<T>::deleteAfter(void)
{
Node<T> *tempPtr = next;
if (next == )
return ;
next = tempPtr->next;
return tempPtr;
}

//Node.h
#ifndef NODE_H
#define NODE_H
//类模板的定义
template <class T> class Node
{
private:
Node<T> *next;//指向后继结点的指针
public:
T data;//数据域
Node(const T &data, Node<T> *next = ); //构造函数
void insertAfter(Node<T> *p); //在本结点之后插入一个同类结点p
Node<T> *deleteAfter();//删除本结点的后继结点,并返回其地址
Node<T> *nextNode(); //获取后继结点的地址
const Node<T> *nextNode() const;//获取后继结点的地址
};
//类的实现部分
//构造函数,初始化数据和指针成员
template <class T> Node<T> ::Node(const T &data ,Node<T> *next = ) : data(data),next(next){}
//返回后继结点的指针
template <class T> Node<T> *Node<T>::nextNode()
{
return next;
}
//返回后继结点的指针
template <class T> const Node<T> *Node<T>::nextNode() const
{
return next;
} //在当前结点之后插入一个结点p
template <class T> void Node<T> ::insertAfter(Node<T> *p)
{
p->next = next;//p结点指针域指向当前结点的后继结点
next = p;//当前结点的指针域指向p
} //删除当前结点的后继结点,并返回其地址
template <class T> Node<T> *Node<T>::deleteAfter()
{
Node<T> *tempPtr = next;//将欲删除的结点地址存到tempPtr
if (next == )//如果当前结点没有后继结点,返回空指针
return ;
next = tempPtr->next;//使当前结点的指针域指向tempPtr的后继结点
return tempPtr;//返回被删除的结点的地址
} #endif // !NODE_H
C++学习笔记47:链表的概念与结点类模板的更多相关文章
- .NET Remoting学习笔记(一)概念
目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...
- 【转载】.NET Remoting学习笔记(一)概念
目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- JavaSE学习笔记(5)---内部类和String类
JavaSE学习笔记(5)---内部类和String类 一.内部类基础 转自菜鸟教程 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来 ...
- [Golang学习笔记] 08 链表
链表(Linked list)是一种常见数据结构,但并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针. 由于不必须按顺序存储,链表在插入的时候可以达到O(1),比顺序表快得多,但是查 ...
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- CUBRID学习笔记 47 show
cubrid的中sql查询语法show c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . ...
- [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading
上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...
- C++学习笔记48:链表的基本操作
//链表的基本操作 //生成链表,插入结点,查找结点,删除结点,遍历链表,清空链表 //链表类模板 //LinkedList.h #ifndef LINKEDLIST_H #define LINKED ...
随机推荐
- git tag用法
git tag //查看tag git tag test_tag c809ddbf83939a89659e51dc2a5fe183af384233 //在某个commit 上打tag git tag. ...
- jmeter4.x centos7部署笔记
1. jmeter依赖 java8或以上版本 安装 java : 参考 https://tecadmin.net/install-java-8-on-centos-rhel-and-fedora/ ...
- C#学习-类的成员
定义完类之后,还需在类中定义成员. 类的成员包括字段.属性.方法和构造函数等,它们与类一样,也都有自己的访问权限.以下是 public,同一个程序集或引用该程序集的其他程序集都可以访问 private ...
- [转] js对象监听实现
前言 随着前端交互复杂度的提升,各类框架如angular,react,vue等也层出不穷,这些框架一个比较重要的技术点就是数据绑定.数据的监听有较多的实现方案,本文将粗略的描述一番,并对其中一个兼容性 ...
- IsNullOrEmpty和IsNullOrWhiteSpace的区别
IsNullOrEmpty // string /// <summary>Indicates whether the specified string is null or an < ...
- Java 中 static 和 volatile 关键字的区别?
static指的是类的静态成员,实例间共享 volatile跟Java的内存模型有关,线程执行时会将变量从主内存加载到线程工作内存,建立一个副本,在某个时刻写回.valatile指的每次都读取主内存的 ...
- ubuntu12.04 mysql 卸载安装
参考: https://blog.csdn.net/qq_26093511/article/details/52847943
- springboot(@Service,@Mapper)注解失效导致无法注入service和mapper
给我来灵感的博客:感谢:http://blog.51cto.com/xingej/2053297?utm_source=oschina-app 因为使用了注解的类在使用时是通过new出来的,导致注解注 ...
- HDFS-HA高可用 | Yarn-HA
HDFS-HA HA(High Available),即高可用(7*24小时不中断服务) 单点故障即有一台机器挂了导致全部都挂了:HA就是解决单点故障,就是针对NameNode: 主Active:读写 ...
- Windows 如何备份恢复Ubuntu系统文件
之前安装的Win10 + Ubuntu18.04双系统,Ubuntu由于特殊原因崩了,所以打算重装系统 但是进不去Ubuntu系统,Ubuntu中的文件无法备份 试了win10的优盘启动工具中的DG, ...