我这样写了这些;
doublylinkedlist::doublylinkedlist(){
head=NULL;
tail=NULL;
}
//***********************************************************************************************
//A constructor with an integer parameter (constructs an SDL containing that integer only). *
//***********************************************************************************************
doublylinkedlist::doublylinkedlist(int number){
head->num =number;
tail=head;
}
但是有一个关于未处理的异常访问违规写入位置的错误窗口
head->num=number;
线。问题出在哪儿 ?如果你想看一下,这也是我的头文件:
#include <iostream>
#ifndef _HW3_H
#define _HW3_H
using namespace std;
struct node
{
int num;
node * left;
node * right;
node::node(){}
node::node(const int &integer, node *pointer, node *ptr):num(integer),left(pointer),right(ptr){}
};
class doublylinkedlist
{
private:
node *head;
node *tail;
int size;
public:
doublylinkedlist();
doublylinkedlist(int);
doublylinkedlist(const doublylinkedlist &);
~doublylinkedlist();
node* clone() const;
node *remove() const;
node *mergedlists(const doublylinkedlist &);
const doublylinkedlist & operator+(const doublylinkedlist &);
const doublylinkedlist & operator=(const doublylinkedlist &);
};
#endif
答案 0 :(得分:1)
您需要首先使用指向节点对象的指针初始化头指针:
doublylinkedlist::doublylinkedlist(int number)
: head(new node())
{
head->num =number;
tail=head;
}
错误发生了,因为没有节点对象&#34;背后&#34;指针