生成一段使用Linkedlist的DMA代码
时间: 2024-05-10 12:21:02 浏览: 95
以下是一段使用LinkedList的DMA代码,其中创建了一个包含5个节点的链表,每个节点包含一个整数值和一个指向下一个节点的指针:
```c++
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
int main() {
Node* head = nullptr;
Node* tail = nullptr;
for (int i = 0; i < 5; i++) {
Node* newNode = new Node;
newNode->data = i;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
tail = newNode;
}
else {
tail->next = newNode;
tail = newNode;
}
}
Node* curr = head;
while (curr != nullptr) {
cout << curr->data << " ";
curr = curr->next;
}
curr = head;
while (curr != nullptr) {
Node* temp = curr;
curr = curr->next;
delete temp;
}
return 0;
}
```
在此代码中,我们首先定义了一个Node结构体,其中包含一个整数值和一个指向下一个节点的指针。然后,在main函数中,我们创建了一个链表,包含了5个节点。我们使用一个for循环来创建每个节点,并将它们添加到链表中。如果链表为空,我们将新节点设置为头节点和尾节点。否则,我们将新节点添加到尾节点的后面,并将新节点设置为新的尾节点。
接下来,我们使用一个while循环来遍历链表,并输出每个节点的值。最后,我们使用另一个while循环来释放每个节点的内存,以防止内存泄漏。我们首先将指针curr设置为链表的头节点,然后在循环中,我们将当前节点的指针temp设置为curr,将curr指针移动到下一个节点,然后使用delete运算符释放temp指针所指向的节点的内存。最后,我们返回0,表示程序成功结束。
阅读全文