谁帮我改改这个编译错误啊。
我在VC6.0上写的。单链表问题。
#include<iostream>
#include<string>
using namespace std;
class SLNode // 节点类
{
public:
int data; //
SLNode *next; //
SLNode (SLNode * nextNode=NULL) //构造函数。。
{
next=nextNode;
}
SLNode (const int & item,SLNode * nextNode=NULL) // 构造函数。。。
{
data=item;
next=nextNode;
}
};
class SLList:public SLNode // 单链表的类定义。
{
private:
SLNode * head,*tail; // 头结点。尾结点。
SLNode * currptr ; // 当前指针。
int size;
public:
SLList (void)
{
head=tail=currptr=new SLNode();
size =0;
}
SLList(int & item) //gou zhao han shu
{
tail=currptr=new SLNode(item);
head=new SLNode(currptr);
size=1;
};
~SLList(void);
bool IsEmpty(void) const {return head->next==NULL;}; // 链表是否为空
void SetStart(void){currptr=head;}
void SetEnd(void){currptr=tail;}
int length(void){return size;} // 返回链表长度。
void Next(void) // 当前指针指向下一个节点
{
if(currptr==tail)
{
cout<<" no next node!"<<endl;
return ;
}
currptr=currptr->next;
}
void Prew(void) // 当前指针指向前一个节点。
{
if(IsEmpty()||currptr==head)
{
cout<<"no previous node!"<<endl;
return ;
}
SLNode *temp=head;
while(temp->next!=currptr)
temp=temp->next;
currptr=temp;
}
bool Find(int k,int & item) // 查找。
{
if(k<1||IsEmpty())
{
cout<<"Invalid number or empty list!"<<endl;
return false;
}
currptr=head;
for(int i=1;i<=k;i++)
{
currptr=currptr->next;
}
item=currptr->data;
return true;
}
int Search (const int & item) // 查找返回。
{
if(IsEmpty())
{
cout<<"list empty!"<<endl;
}
currptr=head;
int k=0;
while(currptr->next!=NULL)
{
k++;
if(currptr->data==item)
{
return k;
}
currptr=currptr->next;
}
if(currptr->next==NULL)
{
cout<<"no find!"<<endl;
}
}
void Insert( int & item) // dang qian jie dian zhi hou cha ru xin jie dian
{
currptr->next=new SLNode(item,currptr->next);
if(tail==currptr)
tail=currptr->next;
size++;
}
void InsertFromTail(const int & item) //biao wei cha ru
{
tail->next=new SLNode(item ,NULL);
tail=tail->next;
size++;
}
void InsertFromHead(const int & item) // biao tou cha ru
{
if(IsEmpty())
{
head->next=new SLNode (item,head->next);
tail=head->next;
}
else
head->next=new SLNode (item,head->next);
size ++;
}
bool Delete(int & de_item) // shan chu dang qian jie dian de hou ji jie dian
{
if(currptr==tail||IsEmpty())
{
cout<<"no next or empty list!"<<endl;
return false ;
}
SLNode *temp=currptr->next;
currptr->next=temp->next;
size--;
de_item=temp->data;
if(temp==tail) tail=currptr;
delete temp;
return true;
}
bool DeleteFromHead(int & de_item) // shan chu di yi ge jie dian
{
if(IsEmpty())
{
cout<<"empty list!"<<endl;
return false;
}
SLNode * temp=head->next;
head->next=temp->next;
size --;
de_item=temp->data;
if(temp==tail)
tail=head;
delete temp;
return true;
}
bool DeleteFromTail(int & de_item)
{
if(IsEmpty())
{
cout<<"empty list"<<endl;
return false ;
}
SetEnd();
Prew();
de_item=tail->data;
currptr->next=NULL;
size --;
delete tail;
tail=currptr;
return true;
}
};
int main(void)
{
SLList list1;
int a=1;
int &b=a;
list1.Insert(b); // 改了之后还是连接不过去。
return 0;
}
[ 本帖最后由 做个好人 于 2010-4-22 12:18 编辑 ]