用C++制作链表



这是一个代码,用于创建一个包含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甚至在我的笔记本电脑上。

h->next= h->next->next;

你想在这里实现什么?

void node::printList()中的while循环更改为:

while(h!=NULL)
{
  cout<< h->data;
  cout<< 'n';
  h= h->next;
}

相关内容

  • 没有找到相关文章

最新更新