2. 假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3包含L中的所有大写字母结点。用C语言实现
时间: 2023-04-10 19:00:48 浏览: 66
可以使用以下C语言代码实现:
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct node {
char data;
struct node *next;
} Node, *LinkedList;
// 初始化链表
LinkedList initList() {
LinkedList L = (LinkedList)malloc(sizeof(Node));
L->next = NULL;
return L;
}
// 插入结点
void insertNode(LinkedList L, char data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = L->next;
L->next = newNode;
}
// 拆分链表
void splitList(LinkedList L, LinkedList L1, LinkedList L2, LinkedList L3) {
Node *p = L->next;
while (p != NULL) {
if (p->data >= '0' && p->data <= '9') {
insertNode(L1, p->data);
} else if (p->data >= 'a' && p->data <= 'z') {
insertNode(L2, p->data);
} else if (p->data >= 'A' && p->data <= 'Z') {
insertNode(L3, p->data);
}
p = p->next;
}
}
// 输出链表
void printList(LinkedList L) {
Node *p = L->next;
while (p != NULL) {
printf("%c ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
// 初始化链表
LinkedList L = initList();
// 插入结点
insertNode(L, '1');
insertNode(L, 'a');
insertNode(L, 'B');
insertNode(L, 'c');
insertNode(L, '2');
insertNode(L, 'D');
insertNode(L, 'e');
// 初始化拆分后的链表
LinkedList L1 = initList();
LinkedList L2 = initList();
LinkedList L3 = initList();
// 拆分链表
splitList(L, L1, L2, L3);
// 输出拆分后的链表
printf("L1: ");
printList(L1);
printf("L2: ");
printList(L2);
printf("L3: ");
printList(L3);
return 0;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)