用c语言实现尾插法 void Create_Linked_List_R(Linked_Node* & L,elemtype A[]. int elem_amount)创建一个带头结点的单链表L
时间: 2024-10-23 07:05:26 浏览: 53
在C语言中,尾插法(也称为尾部插入)是一种在链表的最后添加新元素的方法。首先,我们需要定义一个`Linked_Node`结构体表示链表节点,包含数据域和指向下一个节点的指针。然后,你可以按照以下步骤来实现这个函数:
```c
#include <stdio.h>
typedef struct Node {
elemtype data; // 数据域
struct Node *next; // 指向下一个节点的指针
} Linked_Node;
// 函数声明
void Create_Linked_List_R(Linked_Node **L, elemtype A[], int elem_amount);
// 主函数(如果有的话),用于初始化头结点
Linked_Node *create_head(int size) {
Linked_Node *head = (Linked_Node *)malloc(sizeof(Linked_Node));
head->data = 0; // 初始化头结点的数据
head->next = NULL;
return head;
}
// 尾插法实现
void Create_Linked_List_R(Linked_Node **L, elemtype A[], int elem_amount) {
if (*L == NULL) { // 如果链表为空,直接创建头结点
*L = create_head(elem_amount);
} else {
Linked_Node *last = *L;
while (last->next != NULL) {
last = last->next;
}
last->next = (Linked_Node*)malloc(sizeof(Linked_Node)); // 分配新的节点内存
last->next->data = A[elem_amount - 1]; // 设置新元素值
last->next->next = NULL; // 新节点之后不再有其他节点
}
}
int main() {
elemtype A[] = {1, 2, 3, 4, 5};
int elem_amount = sizeof(A) / sizeof(A[0]);
Linked_Node *L = NULL;
Create_Linked_List_R(&L, A, elem_amount);
// ... 接下来可以遍历链表显示其内容
return 0;
}
阅读全文