建立单链表时,要首先输入链表长度,根据输入值来确定所建链表的结点个数;数据结构用C++写代码
时间: 2025-06-27 11:03:15 浏览: 18
好的,在建立单链表时,我们通常会先获取用户输入的链表长度,然后根据这个值动态创建相应数量的节点,并将每个节点链接起来。下面是一个简单的 C++ 实现示例:
```cpp
#include <iostream>
using namespace std;
// 定义链表节点结构体
struct Node {
int data; // 数据域
Node* next; // 指针域
};
// 创建单链表函数
Node* createLinkedList(int length) {
if (length <= 0) return nullptr; // 如果长度小于等于零,则返回空指针
Node* head = new Node(); // 创建头节点
cout << "请输入第1个元素的数据:" << endl;
cin >> head->data;
head->next = nullptr;
Node* current = head; // 当前操作的节点初始化为头节点
for (int i = 2; i <= length; ++i) { // 循环从第二个节点开始添加到链表中
Node* newNode = new Node();
cout << "请输入第" << i << "个元素的数据:" << endl;
cin >> newNode->data;
newNode->next = nullptr;
current->next = newNode; // 将新节点连接到当前节点之后
current = newNode; // 更新当前节点为最新加入的那个节点
}
return head;
}
void printList(Node* head) {
while (head != nullptr) {
cout << head->data << "->";
head = head->next;
}
cout << "nullptr" << endl;
}
int main() {
int n;
cout << "请输入链表长度:" << endl;
cin >> n;
Node* listHead = createLinkedList(n);
cout << "\n生成的链表内容如下:\n";
printList(listHead);
// 记得释放内存
while (listHead != nullptr) {
Node* temp = listHead;
listHead = listHead->next;
delete temp;
}
return 0;
}
```
### 程序说明:
1. **`createLinkedList()`** 函数用于接收用户指定的链表长度 `n` 并逐一读取数据构建单向链表;
2. 使用了循环来不断创建新的节点并将它们附加到已有的链表上;
3. 最终通过遍历打印整个链表的内容验证其完整性。
以上就是基于给定需求的一个完整解决方案!
阅读全文
相关推荐



















