c++错误 error C2629: unexpected 'class LinkList ('
#include<iostream>usingnamespacestd;template<classT>structNode{Tdata;Node<T>*next;};c...
#include<iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node <T> * next;
};
class LinkList
{
public:
LinkList()
{front=new Node<T>;
front->next=NULL;
}
LinkList(T a[],int n);
~LinkList();
void PrintList();
int GetLength();
T * Get(int i);
int Locate(T x);
void Insert(int i,T x);
T Delete(int i);
private:
Node <T>*front;
};
LinkList<T>::LinkList(T a[],int n)
{
front = new Node <T>;
front->next = NULL;
for(int i=n-1;i>=0;i--)
{
Node <T>*s=new Node<T>;
s->data=a[i];
s->next=front->next;
front->=s;
}
}
LinkList<T>::~LinkList()
{
Node<T>*p=front;
while (p)
{
front=p;
p=p->next;
delete front ;
}
}
T*LinkList<T>::Get(int i)
{
Node <T>*p=front->next;
int j=i;
while(p&&j!=i)
{
p=p->next;
j++;
}
if(!p)throw"查找非法";
else return p;
}
int LinkList<T>::Locate(T x)
{
Node<T>*p= front->next;
int j=1;
while(p)
{
if(p->date==x)
return j;
p=p->next;
j++;
}
return -1;
}
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=front;
if(i!=1)
p=Get(i-1);
if(p)
{
Node<T>*s=new Node <T>;
s->data=x;
s->next=p->next;
p->next=s;
}
else throw"插入位置错误";
}
T LinkList<T>::Delete(int i)
{
Node <T>*p=front;
if(i!=1)p=Get(i-1);
Node <T>*q=p->next;
p->next=q->next;
T x=q->data;
delete q;
return x;
}
不知道哪里错啦? 展开
using namespace std;
template <class T>
struct Node
{
T data;
Node <T> * next;
};
class LinkList
{
public:
LinkList()
{front=new Node<T>;
front->next=NULL;
}
LinkList(T a[],int n);
~LinkList();
void PrintList();
int GetLength();
T * Get(int i);
int Locate(T x);
void Insert(int i,T x);
T Delete(int i);
private:
Node <T>*front;
};
LinkList<T>::LinkList(T a[],int n)
{
front = new Node <T>;
front->next = NULL;
for(int i=n-1;i>=0;i--)
{
Node <T>*s=new Node<T>;
s->data=a[i];
s->next=front->next;
front->=s;
}
}
LinkList<T>::~LinkList()
{
Node<T>*p=front;
while (p)
{
front=p;
p=p->next;
delete front ;
}
}
T*LinkList<T>::Get(int i)
{
Node <T>*p=front->next;
int j=i;
while(p&&j!=i)
{
p=p->next;
j++;
}
if(!p)throw"查找非法";
else return p;
}
int LinkList<T>::Locate(T x)
{
Node<T>*p= front->next;
int j=1;
while(p)
{
if(p->date==x)
return j;
p=p->next;
j++;
}
return -1;
}
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=front;
if(i!=1)
p=Get(i-1);
if(p)
{
Node<T>*s=new Node <T>;
s->data=x;
s->next=p->next;
p->next=s;
}
else throw"插入位置错误";
}
T LinkList<T>::Delete(int i)
{
Node <T>*p=front;
if(i!=1)p=Get(i-1);
Node <T>*q=p->next;
p->next=q->next;
T x=q->data;
delete q;
return x;
}
不知道哪里错啦? 展开
1个回答
展开全部
你好,看过了你的代码。我在Visual Studio 2008 下进行编译,在每个函数,和类前面加上了“template <class T>”,这样就编译通过了。
修改后的代码,如下,请参考:
// copyright @ quark
// date: 2010-10-26
#include<iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node <T> * next;
};
template <class T>
class LinkList
{
public:
LinkList()
{front=new Node<T>;
front->next=NULL;
}
LinkList(T a[],int n);
~LinkList();
void PrintList();
int GetLength();
T * Get(int i);
int Locate(T x);
void Insert(int i,T x);
T Delete(int i);
private:
Node <T>*front;
};
template <class T>
LinkList<T>::LinkList(T a[],int n)
{
front = new Node <T>;
front->next = NULL;
for(int i=n-1;i>=0;i--)
{
Node <T>*s=new Node<T>;
s->data=a[i];
s->next=front->next;
front->=s;
}
}
template <class T>
LinkList<T>::~LinkList()
{
Node<T>*p=front;
while (p)
{
front=p;
p=p->next;
delete front ;
}
}
template <class T>
T*LinkList<T>::Get(int i)
{
Node <T>*p=front->next;
int j=i;
while(p&&j!=i)
{
p=p->next;
j++;
}
if(!p)throw"查找非法";
else return p;
}
template <class T>
int LinkList<T>::Locate(T x)
{
Node<T>*p= front->next;
int j=1;
while(p)
{
if(p->date==x)
return j;
p=p->next;
j++;
}
return -1;
}
template <class T>
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=front;
if(i!=1)
p=Get(i-1);
if(p)
{
Node<T>*s=new Node <T>;
s->data=x;
s->next=p->next;
p->next=s;
}
else throw"插入位置错误";
}
template <class T>
T LinkList<T>::Delete(int i)
{
Node <T>*p=front;
if(i!=1)p=Get(i-1);
Node <T>*q=p->next;
p->next=q->next;
T x=q->data;
delete q;
return x;
}
修改后的代码,如下,请参考:
// copyright @ quark
// date: 2010-10-26
#include<iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node <T> * next;
};
template <class T>
class LinkList
{
public:
LinkList()
{front=new Node<T>;
front->next=NULL;
}
LinkList(T a[],int n);
~LinkList();
void PrintList();
int GetLength();
T * Get(int i);
int Locate(T x);
void Insert(int i,T x);
T Delete(int i);
private:
Node <T>*front;
};
template <class T>
LinkList<T>::LinkList(T a[],int n)
{
front = new Node <T>;
front->next = NULL;
for(int i=n-1;i>=0;i--)
{
Node <T>*s=new Node<T>;
s->data=a[i];
s->next=front->next;
front->=s;
}
}
template <class T>
LinkList<T>::~LinkList()
{
Node<T>*p=front;
while (p)
{
front=p;
p=p->next;
delete front ;
}
}
template <class T>
T*LinkList<T>::Get(int i)
{
Node <T>*p=front->next;
int j=i;
while(p&&j!=i)
{
p=p->next;
j++;
}
if(!p)throw"查找非法";
else return p;
}
template <class T>
int LinkList<T>::Locate(T x)
{
Node<T>*p= front->next;
int j=1;
while(p)
{
if(p->date==x)
return j;
p=p->next;
j++;
}
return -1;
}
template <class T>
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=front;
if(i!=1)
p=Get(i-1);
if(p)
{
Node<T>*s=new Node <T>;
s->data=x;
s->next=p->next;
p->next=s;
}
else throw"插入位置错误";
}
template <class T>
T LinkList<T>::Delete(int i)
{
Node <T>*p=front;
if(i!=1)p=Get(i-1);
Node <T>*q=p->next;
p->next=q->next;
T x=q->data;
delete q;
return x;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询