单链表data域包含两个不同的字符类型数据,该如何创建单链表
时间: 2024-11-09 08:25:59 浏览: 8
单链表-C++数据结构之单链表实现.zip
在C语言中,创建一个数据域包含两个不同字符类型的单链表,你需要定义一个结构体(struct)来存储节点,每个节点包含两个字符类型的成员变量,以及指向下一个节点的指针。以下是如何实现这个结构体和链表的基本步骤:
```c
// 定义一个结构体,表示链表节点,包含两个字符类型的data域
typedef struct Node {
char data1; // 第一个字符类型的数据
char data2; // 第二个字符类型的数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建链表头结点
Node* createList() {
Node* head = (Node*)malloc(sizeof(Node)); // 分配内存给新节点
if (head == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
head->data1 = '\0'; // 初始化第一个节点的数据(这里设置为结束符,实际使用时可替换)
head->data2 = '\0';
head->next = NULL; // 初始化下一个节点为空
return head;
}
// 插入节点到链表中(假设有一个函数如insertNode()用于插入节点)
void insertData(Node* head, char data1, char data2) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->data1 = data1;
newNode->data2 = data2;
newNode->next = head->next;
head->next = newNode;
}
// 遍历链表打印节点的数据
void printList(Node* head) {
while (head != NULL) {
printf("(%c, %c) -> ", head->data1, head->data2);
head = head->next;
}
printf("NULL\n");
}
// 示例用法
int main() {
Node* listHead = createList();
if (listHead != NULL) {
insertData(listHead, 'A', 'B');
insertData(listHead, 'C', 'D');
printList(listHead); // 打印链表
}
return 0;
}
```
阅读全文