我有一个作业,用两个结构在C ++中实现一个双向链接列表。其中之一应包含下一个和上一个指针以及数据。另一个结构应包含两个指针,一个指向头部,一个指向尾巴
Struct DlistElem{
int data;
DlistElem* next;
DlistElem* prev;
}
Struct Dlist{
Dlist * head;
Dlist * tail;
}
//some functions
我遇到的问题是我不知道如何将头和尾都初始化为null才能使用它们。任何帮助将不胜感激!
答案 0 :(得分:0)
在创建DlistElem和Dlist时使用NULL初始化指针。
struct DlistElem{
DlistElem* prev;
DlistElem* next;
int data;
DlistElem() :
prev(NULL),
next(NULL),
data()
{}
}
struct Dlist{
Dlist* head;
Dlist* tail;
Dlist() :
head(NULL),
tail(NULL)
{}
}
答案 1 :(得分:0)
我不知道如何将头和尾都初始化为null以便使用它们。
struct DlistElem {
int data;
DlistElem* next;
DlistElem* prev;
DlistElem() : data{}, next{}, prev{}
{}
};
或
struct DlistElem {
int data;
DlistElem* next{};
DlistElem* prev{};
};
答案 2 :(得分:0)
在c ++ 11中可以完成的另一种方法是:
struct DlistElem{
int data;
DlistElem* next = nullptr;
DlistElem* prev = nullptr;
}
struct Dlist{
Dlist * head = nullptr;
Dlist * tail = nullptr;
}