实现含头结点的单链表 属性包括:data数据域、next指针域 操作包括:创建、显示 注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据
时间: 2023-05-22 09:03:12 浏览: 99
好的,让我看看。对于实现含头结点的单链表,我可以按照以下方式编写代码:
```c++
#include <iostream>
using namespace std;
// 定义结点结构体
struct ListNode {
int data;
ListNode *next;
};
// 创建含有头结点的单链表
void createList(ListNode *&head) {
head = new ListNode; // 分配头结点空间
head->next = NULL; // 空链表的头结点指针为空
ListNode *p = head; // p指向尾结点
int a;
cin >> a;
while (a != -1) {
ListNode *newNode = new ListNode; // 分配新结点空间
newNode->data = a; // 新结点数据域为a
newNode->next = NULL; // 新结点指向NULL
p->next = newNode; // 将新结点插入到尾结点之后
p = newNode; // 指向新结点,更新尾指针
cin >> a;
}
}
// 显示单链表
void displayList(ListNode *&head) {
ListNode *p = head->next;
// 从第一个结点开始遍历
while (p != NULL) {
cout << p->data << " ";
p = p->next;
}
}
int main() {
ListNode *head;
createList(head);
displayList(head);
return 0;
}
```
如果您想了解更多关于单链表的知识,可以参考这篇文章:[C++ 实现带头结点的单链表](https://blog.csdn.net/weixin_43874035/article/details/103113043)。
对于后续编程类问题的回答,我将尽力给出最优解。
阅读全文