各位大哥,如下这个链表类的应用程序,我在调试运行的时候总是无法运行,系统是这样提示的:
Cannot open include file: '9_6.h': No such file or directory
说没有这个文件或者找不到路径
请指教一下 如何解决这个问题呀?
偶比较笨笨`~~弄了一天多了 都弄不了`~~~
首先谢谢各位的帮忙呀~~
//9_5.h
#ifndef NODE_CLASS
#define NODE_CLASS
//类声明部分
template <class T>
class Node
{
private:
Node<T>*next; //指向后结点的指针
public:
T data; //数据域
Node (const T& item,Node<T>* ptrnext = NULL);
void InsertAfter(Node<T>*p);//本结点后插入一个同类接点p
Node<T>*DeleteAfter(void);//删除本结点的后继结点,并返回其地址
Node<T>*NextNode(void) const;//获取后继结点的地址
};
//类的实现部分
//构造函数,初始化数据和指针成员
template<class T>
Node<T>::Node(const T& item,Node<T>*ptrnext):data(item),next(ptrnext)
{}
//返回后继结点的地址
template<class T>
Node<T> *Node<T>::NextNode(void) const
{ return next; }
//在当前结点之后插入一个结点p
template<class T>
void Node<T>::InsertAfter(Node<T>*p)
{
p->next = next;
next = p;
}
//删除当前结点的后继结点,并返回其地址
template <class T>
Node<T> *Node<T>::DeleteAfter(void)
{
Node<T>*tempPtr=next; //将欲删除的结点地址存储到temPtr中
if(next==NULL) //如果当前结点是尾结点的情况
return NULL;
next = tempPtr->next; //使当前结点的指针域指向tempPtr的后继结点
return tempPtr; //返回被删除的结点的地址
}
#endif //NODE_CLASS
//9_6.h
#ifndef LINKEDLIST_CLASS
#define LINKEDLIST_CLASS
#include <iostream>
#include <cstdlib>
using namespace std;
#ifndef NULL
const int NULL=0;
#endif
#include"9_5.h"
template <class T>
class LinkedLIist
{
private:
//数据成员
Node<T>*front,*reat; //表头和表尾指针
Node<T>*prevPtr,*currPtr;//记录当前遍历位置的指针,有插入和删除操作更新
int size; //表元素的个数
int position; //当前元素在表中的位置序号。有函数Reser使用
//函数成员
//生成新结点,数据域为item,指针域ptrNext
Node<T>*GetNode(const T& item,Node<T>*ptrNext=NULL);
//释放结点
void FreeNode(Node<T>*P);
//将链表L拷贝到当前表(假设当前表为空)
//被拷贝构造函数,operator=调用
void CopyList(const LinkedList<T>& L);
public:
LinkedList(void); //构造函数
LinkedList(const LinkedList<T>& L); //拷贝构造函数
~LinkedList(void);
LinkedList<T>&operator=(const LinkedList<T>& L);//重载赋值运算符=
int ListSize(void) const; //返回链表元素个数 (size)
int ListEmpty(void) const; //size等于0时返回TURE 否则返回FALSE
void Reset(int pos=0);//将指针currPtr移动到序号为pos的结点,prevPtr相应
//position记录当前结点的序号
void Next(void);
int EndOfList(void) const;//currPtr等于NULL时返回TRUE 否则返回FALSE
int CurrentPosition(void) const; //返回数据成员position
void InsretFront(const T& item); //在表头插入结点
void InsertRear(const T& item);//在表尾添加结点
void InsertAt(const T& item);//在当前结点之前插入结点
void InsertAfter(const T& item);//在当前结之后插入结点
T DeleteFront(void); //删除头结点
void DeleteAt(void); //删除当前结点
T& Data(void);//返回对当前结点成员data的引用(使数据域可以被修改或使用)
//清空链表:释放所有结点的内存空间。被析构函数operator=调用
void ClearList(void);
};
#endif //LINKEDLIST_CLASS
//9_7.cpp
#include<iostream>
#include"9_6.h"
#include"9_6.cpp"
using namespace std;
void main(void)
{
LinkedList<int>Link;
int i,key,item;
//输入10个整数依次向表头插入
for(i=0,i<10,i++)
{
cin>>item;
Link.InsertFront(item);
}
//输出链表
cout<<"List:"";
List.Reset();
//输出各结点数据,直到链表尾
while(! Link.EndOfList())
{
cout<<link.Data()<<"";
Link>Next(); //使currPtr指向下一个结点
}
cout<<endl;
//输入要删除的整数
cout<<"请输入一个需要删除的整数:";
cin>>key;
//查找并删除结点
Link.Reset();
while(! Link.EndOfList())
{
if(Link>Data()==key)
Link.DeleteAt();
Link.Next;
}
//输出链表
cout<<"List:";
Link.Reset();
//输出各结点数据,直到链表尾
while(! Link.EndOfList())
{
cout<<Link.Data()<<"";
Link.Next();
}
cout<<endl;
}
[此贴子已经被作者于2006-10-20 9:52:02编辑过]