C语言单链表采用链式储存结构存储26个英文字母大写字母表,并完成初始化链表,尾插法建表,插入,删除,输出表中信息六大功能代码。C语言单链表采用链式储存结构存储26个英文字母大写字母表,并完成初始化链表
时间: 2024-09-30 22:05:48 浏览: 110
在C语言中,我们可以使用单链表数据结构来存储26个英文字母的大写。首先,我们需要创建一个节点结构体,包含字母和指向下一个节点的指针。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
char letter;
struct Node* next;
} Node;
// 初始化链表
void initializeList(Node** head) {
*head = NULL;
for (char i = 'A'; i <= 'Z'; ++i) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->letter = i;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
}
// 尾插法添加新元素
void insertLetter(char newLetter, Node** head) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->letter = newLetter;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 删除指定字母
void deleteLetter(char target, Node** head) {
if (*head == NULL) return;
if ((*head)->letter == target) {
Node* temp = *head;
*head = (*head)->next;
free(temp);
return;
}
Node* current = *head;
while (current->next != NULL && current->next->letter != target) {
current = current->next;
}
if (current->next != NULL) {
Node* temp = current->next;
current->next = current->next->next;
free(temp);
}
}
// 输出链表中的字母
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%c -> ", temp->letter);
temp = temp->next;
}
printf("NULL\n");
}
int main() {
Node* head = NULL;
// 初始化链表
initializeList(&head);
// 插入字母
insertLetter('B', &head);
insertLetter('E', &head);
// 输出链表
printList(head);
// 删除特定字母
deleteLetter('E', &head);
// 再次输出链表
printList(head);
return 0;
}
```
这个代码实现了初始化链表、尾插法插入字母、删除指定字母以及打印链表的功能。在`main()`函数中,我们展示了如何操作这个链表。
阅读全文