阅读量:0
在 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
和两个指向前后节点的指针 prev
和 next
。然后我们定义了一个 DoublyLinkedList
类,其中包含两个指向链表头和尾部的指针 head
和 tail
。
在 DoublyLinkedList
类中,我们实现了几个成员函数,包括 append
和 print
。append
函数用于在链表尾部添加一个新节点,print
函数用于打印链表中的所有元素。
通过使用双重指针,我们可以方便地实现链表中的节点的前后连接关系,从而实现一个双向链表。