#include <iostream>
/**
* 定义NODE
*/
template<typename T>
struct Node {
T m_data;
Node<T> *next;
Node(T t=new T()){m_data=t; next=NULL;}
};
/**
* 定义链表
*/
template<typename T>
class List {
private:
Node<T> *head;
public:
List(){head=NULL;}
List<T>& insert(T i);
void reverse();
void print();
};
/**
* 插入元素(头插)
*/
template<typename T>
List<T>& List<T>::insert(T i){
Node<T> *p = head;
head = new Node<T>(i);
head->next = p;
return *this;
}
/**
* 打印链表内容
*/
template<typename T>
void List<T>::print(){
Node<T> *pt = head;
if(pt == NULL ) return;
do{
std::cout << pt->m_data << " ";
pt = pt->next;
}while(pt != NULL);
std::cout << std::endl;
}
/**
* 反序打印指定表头的链表
*/
template<typename T>
void ergodic(Node<T> * head){
用C++(模板)实现链表 —— 实现头插和反序输出
最新推荐文章于 2021-12-07 20:32:18 发布