用C++语言构建长度为n的循环链表,每个节点的数据类型都是node,n个节点的编号(index域)是从1到n的连续数字。
时间: 2023-12-03 09:43:00 浏览: 26
以下是用C++语言构建长度为n的循环链表的示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义节点结构体
struct node {
int index; // 节点编号
// 其他数据域
node* next; // 指向下一个节点的指针
};
// 构建循环链表函数
node* createLoopList(int n) {
node* head = new node(); // 头节点
node* cur = head; // 当前节点
// 创建n个节点,并连接成循环链表
for (int i = 1; i <= n; i++) {
node* p = new node(); // 新节点
p->index = i; // 节点编号为i
cur->next = p; // 当前节点指向新节点
cur = p; // 更新当前节点为新节点
}
cur->next = head->next; // 最后一个节点指向头节点,形成循环链表
return head->next; // 返回头节点的下一个节点,即第一个节点
}
// 测试函数
void test() {
int n = 5; // 链表长度
node* head = createLoopList(n);
// 遍历循环链表并输出每个节点的编号
node* cur = head;
for (int i = 0; i < n; i++) {
cout << cur->index << " ";
cur = cur->next;
}
cout << endl;
}
int main() {
test();
return 0;
}
```
在上面的示例代码中,我们先定义了一个节点结构体 `node`,包含一个编号 `index` 和指向下一个节点的指针 `next`。然后定义了一个 `createLoopList` 函数,用于构建循环链表。该函数首先创建一个头节点 `head`,然后通过循环创建n个节点,并连接成循环链表。最后将最后一个节点的指针指向头节点,形成循环链表。最后,我们在 `test` 函数中调用 `createLoopList` 函数来创建循环链表,并遍历输出每个节点的编号。