c++

c++双重指针在类成员中的应用

小樊
82
2024-09-24 23:29:18
栏目: 编程语言

在 C++ 中,双重指针可以在类成员中应用,主要用于实现一些复杂的数据结构,例如双向链表、二叉树等。下面是一个简单的例子,演示如何在类成员中使用双重指针来实现一个双向链表。

#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node* prev;
    Node* next;
};

class DoublyLinkedList {
public:
    Node* head;
    Node* tail;

    DoublyLinkedList() : head(nullptr), tail(nullptr) {}

    ~DoublyLinkedList() {
        while (head != nullptr) {
            Node* temp = head;
            head = head->next;
            delete temp;
        }
    }

    void append(int data) {
        Node* newNode = new Node();
        newNode->data = data;
        newNode->prev = tail;
        newNode->next = nullptr;

        if (tail != nullptr) {
            tail->next = newNode;
        } else {
            head = newNode;
        }

        tail = newNode;
    }

    void print() {
        Node* temp = head;
        while (temp != nullptr) {
            cout << temp->data << " ";
            temp = temp->next;
        }
        cout << endl;
    }
};

int main() {
    DoublyLinkedList list;
    list.append(1);
    list.append(2);
    list.append(3);
    list.print(); // Output: 1 2 3

    return 0;
}

在这个例子中,我们定义了一个 Node 类,其中包含一个整型数据 data 和两个指向前后节点的指针 prevnext。然后我们定义了一个 DoublyLinkedList 类,其中包含两个指向链表头和尾部的指针 headtail

DoublyLinkedList 类中,我们实现了几个成员函数,包括 appendprintappend 函数用于在链表尾部添加一个新节点,print 函数用于打印链表中的所有元素。

通过使用双重指针,我们可以方便地实现链表中的节点的前后连接关系,从而实现一个双向链表。

0
看了该问题的人还看了