这是一个代码,用于创建一个包含2个值的链表 - 一个用户输入和另一个7.
#include<iostream>
#include<cstdlib>
using namespace std;
class node{
public:
node();
~node();
void printList();
void insert_front(int);
void delete_front();
private:
int data;
node *head;
node *next;
};
node::node()
{
head=NULL;
}
node::~node( ){//destructor
cout <<"destructor called";
while( head!= NULL) delete_front() ;
}
void node::delete_front(){
node *h=head;
if(head==NULL)
{
cout<< "Empty List.\n";
return;
}
head = head->next;
delete(h);
}
void node::printList()
{
node *h=head;
cout<< "Printing the list";
while(h!=NULL)
{
cout<< h->data;
cout<< '\n';
h->next= h->next->next;
}
}
void node::insert_front(int value){
node *temp = new node;
temp->data=value;
temp -> next = NULL;
if (head != NULL){
temp->next =head;
}
head= temp;
}
int main()
{
node ListX;
cout<< "enter integer";
int as;
cin>> as;
ListX.insert_front(as);
ListX.insert_front(7);
ListX.printList();
ListX.~node( );//call destructor to free objects
return 0;
}
请告诉此错误,因为它在http://www.compileonline.com/compile_cpp_online.php甚至在我的笔记本电脑上在线编译时显示错误。
答案 0 :(得分:3)
h->next= h->next->next;
你想在这里实现什么目标?
将while
中的void node::printList()
循环更改为:
while(h!=NULL)
{
cout<< h->data;
cout<< '\n';
h= h->next;
}