jmu-ds-头插法建链表
时间: 2025-04-25 08:35:27 浏览: 16
### 使用头插法创建链表
在使用头插法创建链表时,每次新插入的节点都会成为新的头部节点。这种方法的特点是在构建过程中不断改变链表的第一个节点,使得最终形成的链表元素顺序与输入相反。
以下是具体的实现方式:
#### 头插法创建链表的C++代码示例
```cpp
#include <iostream>
using namespace std;
// 定义链表节点结构体
struct LNode {
char data;
LNode *next;
};
typedef LNode* LinkList;
// 初始化空链表
void InitLinkList(LinkList &L) {
L = new LNode();
L->next = nullptr;
}
// 头插法创建链表
void CreateLinkListHead(LinkList &L, int n) {
cout << "请输入要插入的数据:" << endl;
for (int i = 0; i < n; ++i) {
char ch;
cin >> ch;
// 新建节点
LNode *newNode = new LNode();
newNode->data = ch;
// 插入操作
newNode->next = L->next;
L->next = newNode;
}
}
// 输出链表
void DispLinkList(LinkList L) {
LNode *p = L->next;
while(p != nullptr){
cout << p->data << ' ';
p = p->next;
}
cout << endl;
}
```
上述代码展示了如何利用头插法来创建一个简单的字符型单向链表[^1]。每当有一个新的数据被读取进来之后就会立即作为最新的头结点加入到现有的链表之前,从而实现了反序的效果。
为了验证这段程序的功能,可以通过如下测试案例来进行检验:先初始化一条空链表`InitLinkList(L)`,接着调用`CreateLinkListHead(L, num)`函数按照指定数量`num`依次添加若干个字符至该链表之中,最后打印整个链表的内容查看是否按预期工作正常。
阅读全文
相关推荐
















