c语言下面的函数concatenate实现两个字符单向链表的连接。函数以对两个链表头的引用作为参数,把第二个链表连接到第一个链表后面。 样例输入: 1 a 3 e f g 样例输出:agfe
时间: 2023-07-11 09:09:04 浏览: 84
c用c语言编写一个函数,连接两个字符串
4星 · 用户满意度95%
下面是C语言实现的代码:
```c
#include <.h>
#include <stdlib.h>
struct node {
val;
struct node *next;
};
// 创建新节点
struct node* create_node(char val) {
struct node *new_node = (struct*) malloc(sizeof(struct node));
_node->val = val;
new_node->next = NULL;
return new_node;
}
// 连接两个链表
void concatenate(struct node **head1, struct node **head2) {
if (*head1 == NULL) {
*head1 = *head2;
return;
}
struct node *cur = *head1;
while (cur->next != NULL) {
cur = cur->next;
}
cur->next = *head2;
}
// 输出链表
void print_list(struct node *head) {
struct node *cur = head;
while (cur != NULL) {
printf("%c", cur->val);
cur = cur->next;
}
}
int main() {
// 创建第一个链表
struct node *head1 = create_node('a');
head1->next = create_node('b');
head1->next->next = create_node('c');
// 创建第二个链表
struct node *head2 = create_node('d');
head2->next = create_node('e');
head2->next->next = create_node('f');
head2->next->next->next = create_node('g');
// 连接两个链表
concatenate(&head1, &head2);
// 输出连接后的链表
print_list(head1);
return 0;
}
```
运行结果:
```
abcdefg
```
阅读全文