- 论坛徽章:
- 2
|
原帖由 火星人1 于 2009-4-18 23:01 发表 ![]()
我试了一下,可还是报同样的错误。不知为什么。
------ nodetype.h ------
#if !defined NODE_H
#define NODE_H
#include<iostream>
template<class T>
class LinkedList;
template<class T>
class Node
{
friend class LinkedList<T>;
private:
Node <T> * next;
public:
T data;
Node(const T & item,Node <T>*ptrnext=NULL);
void Insert(Node <T> * p);//在当前结点之后插入指针结点
Node <T> * DeleteAfter();//删除后继并返回
Node <T>* NextNode() const;
};
#endif
------ linktype.h ------
#if !defined LINKEDLIST_H
#define LINKEDLIST_H
#include <iostream>
#include"nodetype.h"
//using namespace std;
template<class T>
class LinkedList
{
private:
Node <T>* front;Node <T>* rear;
Node <T>* current;Node <T>*prevptr;
int size;
int position;
//生成新结点
Node <T>* GetNode(const T & item,Node<T> *PtrNext);
//释放结点
void FreeNode(Node <T>* p);
public:
LinkedList();//构造函数
// LinkedList(const LinkedList & L);
// ~LinkedList();//析构函数
int ListedEmpty() const;
//遍历链表的函数
void Reset();
void Next();//令当前结点指向原当前结点的后继节点
int EndOfList() const;
int ThisPosition() const;
//插入一个data域值为item的结点
void Insert(const T & item );//表头插入
void InsertRear(const T & item);//表尾插入
//删除函数
int DeleteFront();//删除当初结点的前驱结点
void DeleteAt();//删除当期结点
//返回当前结点的data域值
T Data() const;
void fnext();//front指向下一个节点
void ClearList();
//创建链表
void creatlink();
void linkreverse();//将链表反向
void linkprint();//打印链表
};
#endif
VC6、8、9
gcc3.4.x
都没错。。。。 |
|