单链表增加头部插入结点的功能
时间: 2023-10-20 16:26:22 浏览: 53
单链表增加头部插入结点的功能可以通过以下步骤实现:
1. 创建一个新的结点;
2. 将新节点的 next 指针指向原来的头结点;
3. 将头结点指向新节点。
下面是一个 C++ 实现的例子:
```c++
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
void insertAtHead(ListNode*& head, int val) {
ListNode* newNode = new ListNode(val);
newNode->next = head;
head = newNode;
}
```
在这个例子中,我们首先创建一个新的结点 `newNode`,然后将它的 `next` 指针指向原来的头结点 `head`,最后将 `head` 指向 `newNode`,这样就完成了头部插入结点的操作。注意,这里使用了指向指针的引用 `ListNode*&`,这是为了让 `head` 可以被修改。
相关问题
定义单链表类型,创建单链表11(带头结点)。编写函数void AddNodeFront(ElementType e,List 1)在链表头部插入新结点,将(4,3,2,1)依次插入单链表11头部,遍历表链并打印结点的程序
// 定义单链表结构体
typedef struct Node *PtrToNode;
struct Node {
ElementType data;
PtrToNode next;
};
typedef PtrToNode List;
// 创建带头结点的单链表
List CreateList() {
List L = (List)malloc(sizeof(struct Node));
L->next = NULL;
return L;
}
// 在链表头部插入新结点
void AddNodeFront(ElementType e, List L) {
PtrToNode newNode = (PtrToNode)malloc(sizeof(struct Node));
newNode->data = e;
newNode->next = L->next;
L->next = newNode;
}
// 遍历链表并打印结点
void PrintList(List L) {
PtrToNode p = L->next;
while (p) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
List L = CreateList();
AddNodeFront(1, L);
AddNodeFront(2, L);
AddNodeFront(3, L);
AddNodeFront(4, L);
PrintList(L);
return 0;
}
带头结点的单链表有序插入
在带头结点的单链表中有序插入一个元素,可以按照以下步骤进行:
1. 创建一个新的节点,将待插入的元素存储在该节点的数据域中。
2. 遍历链表,找到第一个比待插入节点大的节点位置。
3. 将新节点插入到找到的位置前面,即使新节点成为该位置前面节点的后继节点。
下面是带头结点的单链表有序插入的 C++ 代码实现:
```c++
void insert(Node* head, int data) {
Node* p = head;
while (p->next != NULL && p->next->data < data) {
p = p->next;
}
Node* new_node = new Node(data);
new_node->next = p->next;
p->next = new_node;
}
```
其中,`Node` 是节点的结构体,包含数据域 `data` 和指向下一个节点的指针 `next`。`head` 是头结点的指针,初始时指向链表的头部。在遍历链表时,如果找到了第一个比待插入节点大的节点位置,则在该位置前插入新节点。最后需要注意释放新节点的内存。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)