我在大学里使用LinkedLists做了数据结构的作业,
做了代码,但编译器" eclips"显示一个名为的错误 描述资源路径位置类型
二进制表达式的操作数无效(' ostream'(又名' basic_ostream')和' void')LinkedLists.cpp / LinkedLists / src line 156 C / C ++问题
这是代码,那么这个问题是什么?我该如何解决?
谢谢^^
struct node {
int StudentNumber;
string name;
node *link,*data;
};
node *head,*newNode,*last;
string name;
int StudentNumber;
node* insert (){
char a='n';
cout<<"hello to linked lists insertion"<<endl;
cout<<endl<<"please write your name : ";
cin>>name;
cout<<"please put the student number : ";
cin>>StudentNumber;
head=NULL;
while(a!='n'||a!='N'){
newNode = new node ;
newNode->StudentNumber=StudentNumber;
newNode->name=name;
newNode->link=NULL;
if (head==NULL)
{
head=newNode;
last=newNode;
}else {
last->link=newNode;
last=newNode;
}//end else
cout<<"please write your name : ";
cin>>name;
cout<<endl<<"please put the student number : ";
cin>>StudentNumber;
cout<<"Do you want to insert new nodes ? y for yes , n for no ";
cin>>a;
}//end while
return head;
}//end insert function
// adding nodes function
void add() {
int j;
cout<<"please choose your option for adding new node : 1 for add at the beginning , 2 for add at the end ";
cin>>j;
if (head!=NULL)
{
switch (j)
{
// adding at the beginning
case 1 :
newNode=new node;
newNode->link=head;
head=newNode;
cout<<"please insert your node data : ";
cout<<"Student Name : "<<newNode->data<<endl<<"and student number is : "<<newNode->StudentNumber;
break;
// at the end
case 2:
newNode= head;
while (newNode->link!=NULL)
{
newNode = newNode->link;
}// end of while
last= newNode;
newNode = new node ;
newNode->link=NULL;
last->link=newNode;
cout<<"please insert your node data : ";
cout<<"Student Name : "<<newNode->data<<endl<<"and student number is : "<<newNode->StudentNumber;
break; // end of case adding at the end
}
}else {cout<<"The list is empty";}
}// ending of the adding nodes function
// delete node function
void deletion () {
int s;
cout<<"please choose your option for deleting nodes : 1 for delete the first , 2 for delete the last node ";
cin>>s;
switch (s) {
// delete the first node
case 1 :
newNode = head;
last=head->link;
head=last;
delete newNode;
break;
//delete the last node
case 2:
newNode=head;
last=head;
while (newNode->link!=NULL)
{
last=newNode;
newNode=newNode->link;
}
last->link=NULL;
delete newNode;
break;
}//end of the switch
}// end of delete nodes function
int main() {
int m;
cout<<"Welcome to LinkedLists Example"<<endl;
cout<<"enter your choice number , 1 for inserting nodes to the list , 2 for adding nodes , 3 for deleting nodes ";
cin>>m;
switch(m) {
case 1:
cout<<insert();
break;
case 2:
cout<<add();
break;
case 3:
cout<<deletion();
break;
}
return 0;
}
答案 0 :(得分:0)
在main
函数中,您有以下三行:
cout<<insert();
cout<<add();
cout<<deletion();
如果你看一下这些功能的原型:
node* insert ()
void add()
void deletion()
现在我们可以看到问题所在。在insert
案例中,您尝试将node*
传递给cout
。 cout
不知道如何处理node*
。同样,add
和deletion
正在将void
传递给cout
cout
,string
不知道如何处理。
有两种解决方案:
insert
,add
和delete
内打包cout
,然后将该字符串返回cout
。 insert
。我建议第二种解决方案。这对你的项目来说要简单得多,它不会破坏你计划用int main() {
int m;
cout<<"Welcome to LinkedLists Example"<<endl;
cout<<"enter your choice number , 1 for inserting nodes to the list , 2 for adding nodes , 3 for deleting nodes ";
cin>>m;
switch(m) {
case 1:
insert();
break;
case 2:
add();
break;
case 3:
deletion();
break;
}
return 0;
}
的返回值做的任何事情。你的主要功能如下:
self.lineChartView.xAxis.labelTextColor = UIColor.white
self.lineChartView.leftAxis.labelTextColor = UIColor.white
self.lineChartView.rightAxis.labelTextColor = UIColor.white