2024年6月2日
- #include
- #include
-
- // 定义链表节点结构体
- typedef struct Node {
- int data;
- struct Node* next;
- } Node;
-
- // 尾插函数
- void append(Node** head_ref, int new_data) {
- // 1. 分配新节点,并设置其数据
- Node* new_node = (Node*)malloc(sizeof(Node));
- new_node->data = new_data;
- new_node->next = NULL;
-
- // 2. 如果链表为空,则新节点是头节点
- if (*head_ref == NULL) {
- *head_ref = new_node;
- return;
- }
-
- // 3. 否则,找到尾节点
- Node* last = *head_ref;
- while (last->next != NULL) {
- last = last->next;
- }
-
- // 4. 更改尾节点的next,使其指向新节点
- last->next = new_node;
- return;
- }
-
- // ... 其他链表操作函数和主函数(main) ...
尾插法是上面的
下面是头插法
- #include
- #include
-
-
- typedef struct Node {
- int data;
- struct Node* next;
- } Node;
-
-
- void prepend(Node** head_ref, int new_data) {
-
- Node* new_node = (Node*)malloc(sizeof(Node));
- new_node->data = new_data;
- new_node->next = NULL;
-
- if (*head_ref == NULL) {
- *head_ref = new_node;
- return;
- }
-
-
- new_node->next = *head_ref;
- *head_ref = new_node;
- return;
- }
只用知道上传代码即可