链表操作:创建、遍历、尾部插入和头部插入

需积分: 0 0 下载量 76 浏览量 更新于2024-08-03 收藏 28KB DOCX 举报
"链表操作的C++实现,包括创建链表、遍历链表、在链表尾部插入节点和在链表头部插入节点的函数定义。" 链表是一种基础且重要的数据结构,它不依赖于数组的连续内存空间,而是通过节点之间的指针连接。在C++中,我们可以自定义结构体来表示链表节点,如`ListNode`,它包含两个成员:一个整型数据`data`和一个指向下一个节点的指针`next`。 在提供的代码中,首先定义了`ListNode`结构体,并提供了两种构造函数。一种是带有参数的构造函数`ListNode(int x)`,用于初始化一个带有数据的新节点;另一种是无参数的构造函数`ListNode()`,用于创建一个空的节点(即`next`指针为`nullptr`)。 接着,代码提供了一个`createList`函数,用于创建一个具有指定长度`n`的链表。该函数接受一个`ListNode*`类型的指针`pHead`作为参数,用于存储链表的头节点。在循环中,不断创建新的节点,将前一个节点的`next`指针指向新节点,然后更新指针`p`指向新节点。最后返回链表的头节点。 `ScanList`函数用于遍历链表并打印其所有元素。它接受链表的头节点`pHead`作为参数,通过一个`temp`指针从头节点的下一个节点开始,逐个访问每个节点的数据,并将其打印出来。 `AddListTail`函数用于在链表的尾部插入一个新的节点。首先检查链表是否为空,如果为空则直接返回。然后创建一个新的节点`temp`,并使用一个`cur`指针从头节点的下一个节点开始,遍历到链表的最后一个节点,将其`next`指针指向新节点`temp`,从而完成尾部插入。 `AddListHead`函数用于在链表的头部插入一个新节点。此函数同样首先检查链表是否为空,然后创建一个新节点,将新节点的`next`指针设置为原链表的头节点,最后将链表的头节点指向新节点,实现了在链表头部的插入。 这些函数展示了链表的基本操作,可以作为理解链表概念和C++实现链表操作的基础。在实际编程中,还可以扩展其他功能,如删除节点、查找节点、反转链表等。