C++ 单链表与迭代器generic 模板类

本文介绍了如何使用C++设计和实现一个不带头节点的单链表,包括其基本功能和迭代器操作。调试迭代器部分花费了较多精力。
摘要由CSDN通过智能技术生成

数据结构–单链表

本以为单链表会比双链表简单,结果花了好几个晚上才把它搞定…
不带头节点的单链表,基本功能其实不难实现,但是迭代器调试了半天

 #pragma once
 #include <iostream>
 using namespace std;
 
 template <typename Type>
 struct Node
 {
   
 	Type data;
 	Node<Type> *next;     
 	Node<Type>(Node<Type> *ptr = NULL) {
    next = ptr; };
 	Node<Type>(const Type &_data, Node<Type> *ptr = NULL) {
    data = _data; next = ptr; }
 	
 };
 template <typename Type> class SLLIter;
 template <typename Type>
 class SLList
 {
   
 private:
 
 	Node<Type> *head;
 
 public:
 	friend class SLLIter<Type>;
 	/
 	// Function : Constructor
 	// Notes : constructs an empty list
 	/
 	SLList() 
 	{
   
 		head =NULL;
 	};
 
 		/
 		// Function : Destructor
 		// Notes : Destroys the list
 		/
 	~SLList() 
 	{
   
 		clear();
 		delete head;
 	};
 
 		/
 		// Function : Assignment Operator
 		/
 	SLList<Type>& operator=(const SLList<Type>& that)
 	{
   
 		if (this == &that) {
   
 			return *this;
 		}
 		else {
   
 		clear();  
 		if (that.head == NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值