记录数据结构链表学习过程(手写list)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef int Rank;
template<typename T> struct ListNode{
T data; //数据域
ListNode<T> *prev;//前驱
ListNode<T> *next;//后继
ListNode() {
}; //默认构造
ListNode(T e,ListNode p=NULL,ListNode q=NULL):data(e),prev(p),next(q) {
}//带参构造(方便赋值)
};
template<typename T> class List_Link{
private:
int _size; //元素个数
ListNode<T> *head; //头指针
ListNode<T> *tail; //尾指针
void init(); //初始化
public:
List_Link(){
init();}//默认构造
~List_Link(); //析构
T& operator [] (Rank ) const; //重载[]运算符
Rank size() const {
return _size;} //大小
bool empty() const {
return _size<=0;