C++循环双链表 编译出错

来源:百度知道 编辑:UC知道 时间:2024/06/27 18:37:34
我是菜鸟
下面是源代码///////////////////////节点类定义实现///////////////////////
template <class T>
class LinList;
template <class T>
class ListNode

{
friend class LinList<T>;
private:
ListNode<T>*next;
T data;

public:
ListNode(ListNode<T>*ptrNext=NULL)
{next=ptrNext;}

ListNode(const T& item,ListNode<T> *ptrNext=NULL)
{data=item;next=ptrNext;}

~ListNode(void){}
};

///////////////////////单链类定义/////////////////////////

template <class T>
class LinList
{
private:
ListNode<T>*head;
int size;

ListNode<T>*Index(int i);
public:
LinList(void);
~LinList(void);

int Size(void) const;
void Insert (const T& item, int i);
T Delete(int i);
T GetData(int i);
};

////////////////////////单链类实现///////////////

#include <iostream>
#include <stdlib.h>
using namespace std;

template <class T>
class LinList;
template <class T>
class ListNode

{
friend class LinList<T>;
private:
ListNode<T>*next;
T data;

public:
ListNode(ListNode<T>*ptrNext=NULL)
{
next=ptrNext;
}

ListNode(const T& item,ListNode<T> *ptrNext=NULL)
{
data=item;
next=ptrNext;
}

~ListNode(void){}
};

///////////////////////单链类定义/////////////////////////

template <class T>
class LinList
{
private:
ListNode<T>*head;
int size;

ListNode<T>*Index(int i);
public:
LinList(void);
~LinList(void);

int Size(void) const;
void Insert (const T& item, int i);
T Delete(int i);
T GetData(int i);