#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
class Link
{
public:
Link(int a[],int n)
{
first=new Node;
first->next=NULL;
for(int i=0;i<n;i++)
{
Node *s=NULL;
s=new Node;
s->next=first->next;
first->next=s;
}
}
void chaozhao(int x)
{
Node *p;
p=first->next;
while(p!=NULL)
{
if(p->data==x)
{
cout<<"yes";
break;
}
p=p->next;
}
if(p->next=NULL)
cout<<"no";
}
private:
struct Node *first;
int count;
};
int main()
{
int i,a[100],x,n;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cin>>x;
Link l(a,n);
l.chaozhao(x);
return 0;
}
修改如下,供参考:
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
class Link
{
public:
Link(int a[],int n)
{
first=new Node;
first->next=NULL;
for(int i=0;i<n;i++)
{
Node *s=NULL;
s=new Node;
s->data=a[i];//结点数据
s->next=first->next;
first->next=s;
}
}
void chaozhao(int x)
{
Node *p;
p=first->next;
while(p!=NULL)
{
if(p->data==x)
{
cout<<"yes";
break;
}
p=p->next;
}
if(p==NULL) //if(p->next=NULL)
cout<<"no";
}
private:
struct Node *first;
int count;
};
int main()
{
int i,a[100],x,n;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cin>>x;
Link l(a,n);
l.chaozhao(x);
return 0;
}
这各IF错了:
if(p->next=NULL)
cout<<"no";
应该是:
if(p==NULL)
cout<<"no";
构造函数Link里还漏了一行:
s->data = a[i];
Link(int a[],int n)
{
first=new Node;
first->next=NULL;
for(int i=0;i<n;i++)
{
Node *s=NULL;
s=new Node;
s->data = a[i];
s->next=first->next;
first->next=s;
}
}