我真的在C++的新手,现在我试图找到在队列中的具体数目,但它不工作,我得到这个错误:如何查找队列上的特定元素?
- 34线不能转换“节点'到'节点*'的初始化。
- 71行无法将'q'从'node *'转换为'node'。
我在做什么是这样的:
#include <iostream>
using namespace std;
typedef struct node {
int data;
node * next;
}queue;
queue *Q, *first, *final=NULL;
void push()
{
int number;
cout<<"Enter the number: ";
cin>>number;
Q=new node;
Q->data=number;
Q->next=NULL;
if(first==NULL)
{
final=first=Q;
}
else
{
final->next = Q;
final = Q;
}
}
void findElement(node q ,int number)
{
node * Q=q;
int i=0,flag=0;
while(Q!=NULL)
{
if(Q->data==number)
{
cout<<"Found in position: "<<i<<endl;
flag=1;
}
Q=Q->next;
i++;
}
if(flag==0)
{
cout<<"\n\nNot found..."<<endl;
}
}
int main()
{
int number,x;
node *q=NULL;
cout<<"1 Push"<<endl;
cout<<"2 Find"<<endl;
cin>>x;
do
{
switch (x)
{
case 1:
push();
break;
case 2:
cout<<"\n\nEnter the number you want to find: ";
cin>>number;
findElement(q,number);
break;
default:
cout<<"Invalid option..."<<endl;
break;
}
}while (x!=0);
}
我知道我的计划可能会非常糟糕,但我真的已经很努力地学习,所以请你能告诉我是什么做错了这对我意味着很重要。 在此先感谢。
将标题更改为void findElement(node * q,int number); – 2014-10-17 04:56:44