数据结构与算法c语言将两个线性表并在一起的程序
时间: 2024-12-22 11:18:04 浏览: 3
数据结构与算法基础课程 C语言C++程序语言设计教程 4_1串 共18页.pptx
在C语言中,合并两个线性表通常可以使用递归或迭代的方式。这里我将提供一个简单的迭代方法来合并两个已排序的链表,创建一个新的链表,其中元素按照升序排列。我们将假设链表节点的结构如下:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
下面是一个基本的函数实现:
```c
Node* mergeSortedLists(Node* list1, Node* list2) {
// 如果list1为空,直接返回list2
if (list1 == NULL) return list2;
// 如果list2为空,直接返回list1
if (list2 == NULL) return list1;
// 创建新链表头结点
Node* head = list1->data < list2->data ? list1 : list2;
// 比较当前链表的头部元素,选择较小的一个作为新链表的下一个元素
Node* current = head;
while (list1 && list2) {
if (list1->data < list2->data) {
current->next = list1;
list1 = list1->next;
} else {
current->next = list2;
list2 = list2->next;
}
current = current->next;
}
// 将剩余未遍历完的链表添加到新链表尾部
if (list1) current->next = list1;
else current->next = list2;
return head;
}
```
阅读全文