Visual Studio 2010 报“应输入声明”错误

7进制 2011-11-18 07:57:10
好好的一段代码,在前面一样的写法没错,在后面就一直报“Eorro:应输入声明”,红波浪线怎么弄都不去,到底是怎么回事?
求正解!!!
...全文
4138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sd3142459 2012-02-13
  • 打赏
  • 举报
回复
我看你的程序 我也出现过类似的情况是因为 我把判断 打成了这样 if() }
7进制 2011-11-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhujian888 的回复:]

楼主,你给出的信息太少。我们无法帮你解决,不能帮你猜测个结果出来的
[/Quote]


// LinkList.h
#include "list.h"
#include "LinkNode.h"

//定义单链表类
template <class ElemType>
class LinkList:public List<ElemType>
{
public:
LinkList();//构造函数
LinkList(const LinkList<ElemType>&);//拷贝构造函数
~LinkList();//析构函数
bool IsEmpty()const {return len<=0;}//判断单链表是否为控表
int Length()const {return len;}//求表长
void Clear();//置单链表为空表
bool GetElem (ElemType & ,int ) const;//表中取值
bool SetElem (ElemType & ,int );//表中存值
int LocateElemType(const ElemType &) const;//查找表中符合条件的数据元素
int LocatePrior(const Elemtype&) const;//查找表中符合条件的数据元素前驱
int LocateNext(const Elemtype&) const;//查找表中符合条件的数据元素后继啵
bool Insert(const ElemType& ,int);//在表中指定位置插入
bool Append(const ElemType&);//表尾插入
bool Delete(ElemType&,int);//删除表中指定位置的数据元素
void Traverse(void(*visit)(constElemType&)) const;//单链表遍历
LinkList<ElemType> & operator=(const LinkList<ElemType>&);//赋值运算符=的重载

private:
int len;
LinkNode <ElemType> *head;
LinkNode <ElemType> *tail;
void CopyFrom(const LinkList<ElemType>&);//拷贝函数
};


//1.单链表初始化(默认构造函数)
//构造一个带头结点的空单链表
template<class ElemType>
LinkList <ElemType>::LinkList()
{
len=0;
head=tail=new LinkNode <ElemType>;
head->next=NULL;
}


//2.单链表的复制(拷贝构造函数)
//拷贝构造函数,从现有的单链表中拷贝构造出一个单链表
template <class ElemType>
LinkList<ElemType>::LinkList(const LinkList<ElemType> &r)
{
CopyFrom(r);//从r所引用的链表中复制所有的结点
}


//3.单链表结构的销毁(析构函数)
//析构函数
template<class ElemType>
LinkList<ElemType>::~LinkList()
{
Clear();//释放所有的数据结点
delete head;//释放头结点
}


//4.置单链表为空表
//释放单链表中的所有数据结点
template<class ElemType>
void LinkList<ElemType>::Clear()
{
LinkNode<ElemType> *p=head->next, *q;
while(p)
{
q=p->next;
delete p;
p=q;
}
tail=head;
head->next=NULL;
len=0;
}


//5.表中取值——取单链表中序号为i的数据元素值
//返回单链表中序号为i的数据元素(i的合法值1≤i≤len)
template<class ElemType>
bool LinkList<ElemType>::GetElem(ElemType &e,int i) const
{
if(i<1 || i>len)
return false;
LinkNode<ElemType> *p=head->next;
int k=1;
while(k<i)
{
p=p->next;
k++;
}
e=p->data;
return true;
}


//6.表中存值——在单链表中序号为i 的位置存入数据元素(i的合法值为1≤i≤len)
template<class ElemType>
int LinkList<ElemType>::SetElem(const ElemType &e,int i)
{
if(i<1 || i>len)
return false;
LinkNode<ElemType> *p=head->next;
int k=1;
while(k<1)
{
p=p->next;
k++;
}
p->data=e;
return true;
}


//7.表中查找——在单链表中查找符合条件的数据元素
//从第一个位置起查找与e匹配的数据元素,若存在,则返回该数据元素的位置,如果ElemType引用的是一个复杂的数据类型,那么在定义ElemType引用的数据类型时,必须重载!=运算符
template<class ElemType>
int LinkList<ElemType>::LocateElem(const ElemType &e) const
{
int i=1;
LinkNode<ElemType> *p=head->next;
while(p && p->data!=e)
{
i++;
p=p->next;
}
if(p)
return i;
return 0;
}


//8.在单链表中查找符合条件的数据元素前驱
//从第一个位置起查找与e匹配的数据元素,若存在,则返回该数据元素的位置,如果ElemType引用的是一个复杂的数据类型,那么在定义ElemType引用的数据类型时,必须重载!=运算符
template<class ElemType>
int LinkList<ElemType>::LocatePrior(const ElemType &e) const
{
int i=LocateElem(e);
if(i>1)
return i-1;
else
return 0;
}


//9.在单链表中查找符合条件的数据元素后继
//从第一个位置起查找与e匹配的数据元素,若存在,则返回该数据元素的位置,如果ElemType引用的是一个复杂的数据类型,那么在定义ElemType引用的数据类型时,必须重载!=运算符
template<class ElemType>
int LinkList<ElemType>::LocateNext(const ElemType &e) const
{
int i=LocateElem(e);
if(i>=1 && i<len)
return i+1;
return 0;
}


//10.在单链表中第i个结点之前插入新的结点(即新的数据元素)(i的合法值为1≤i≤len)
template<class ElemType>
bool LinkList<ElemType>::Insert(const ElemType &e,int i)
{
LinkNode<ElemType> *p,*q;
int k=1;
if(i<1 || i>len)
return false;//插入的i值不合法
q=new LinkNode<ElemType>;
q->data=e;
p=head;
while(k<i) //将p指针的值定位在第i-1个结点上
{
p=p->next;
k++;
}
q->next=p->next;
p->next=q; //插入q结点
if(i=len+1)
tail=q; //表尾插入后修改尾指针
++len; //表的长度+1
return true;
}


//11.在单链表LinkList的表尾插入新的结点(即新的数据元素)
template <class ElemType>
int LinkList<ElemType>::Append(const ElemType &e)
{
LinkNode<ElemType> *q;
q=new LinkNode<ElemType>;
q->data = e;
tail->next = q; //表尾插入q结点
tail = q;
tail->next = NULL;
++len;
return true;
}


//12.在单链表中删除第i个结点(即数据元素),并用数据变量e返回其值(i的合法值1≤i≤len)
template <class ElemType>
bool LinkList<ElemType>::Delete(const ElemType &e, int i)
{
if(i<1 || i>len)
return false; //删除位置i值不合法
LinkNode <ElemType> *p, *q;
int k = 1;
p = head;
while(k<i)
{
p = p->next;
k++;
}
q = p->next;
p->next = q->next; //删除q结点
if(q == tail)
tail = p;
e = q->data;
delete q;
--len; //表长-1
return true;
}


//13.单链表的遍历
//依序对单链表中的每一个数据元素调用函数visit()一次且仅一次
template <class ElemType>
void LinkList<ElemType>::Traverse(void(*visit)(const ElemType &e)) const
{
LinkNode<ElemType> *p=head->next;
while(p)
{
visit(p->data);
p=p->next;
}
}



//14.赋值运算符=的重载
template<class ElemType>
LinkList<Elemtype> & LinkList<ElemType>::operator(const LinkList<ElemType> &r)
{
Clear();
delete head;
CopyFrom(r);
return *this;
}


//15.拷贝函数,从现有的一个链表中复制所有的结点
template<class ElemType>
void LinkList<ElemType>::CopyFrom(const LinkList<ElemType> &r)
{
len=0;
head=tail=new LinkNode<ElemType>;
head->next=NULL;
LinNode<ElemType> *p=r.head->next;
while(p)
{
Append(p->data);
p=p->next;
}
}
RX_SESSION 2011-11-18
  • 打赏
  • 举报
回复
为什么我写得程序,在我的电脑上可以运行,在别人的电脑上却显示错误,说这个软件没有正确安装,无法运行。
zhujian888 2011-11-18
  • 打赏
  • 举报
回复
楼主,你给出的信息太少。我们无法帮你解决,不能帮你猜测个结果出来的

65,171

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧