如何将双向链接列表中的头部初始化为NULL?

时间:2018-11-10 23:03:44

标签: c++

我有一个作业,用两个结构在C ++中实现一个双向链接列表。其中之一应包含下一个和上一个指针以及数据。另一个结构应包含两个指针,一个指向头部,一个指向尾巴

Struct DlistElem{
    int data;
    DlistElem* next;
    DlistElem* prev;
  }

Struct Dlist{
 Dlist * head;
 Dlist * tail;
}

//some functions

我遇到的问题是我不知道如何将头和尾都初始化为null才能使用它们。任何帮助将不胜感激!

3 个答案:

答案 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;
}