建立一个链表结构来存放26个英文字母组成的线性表(a, b c, …,z), 请写出C语言程序。并在此基础上,设计在链表的任意一个位置插入新的字母。使用尾插法。结点类型为LinkList
时间: 2024-10-11 13:03:31 浏览: 35
C语言实现存放任意数据类型的线性表和链表
在C语言中,我们可以创建一个简单的单链表结构`Node`来存储英文字母,并提供一个函数来实现尾部插入。首先,我们需要定义节点类型和一些全局变量:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
char letter;
struct Node* next; // 指向下一个节点的指针
} LinkList;
// 初始化链表头结点
LinkList* createEmptyList() {
LinkList* head = (LinkList*)malloc(sizeof(LinkList));
head->letter = '\0';
head->next = NULL;
return head;
}
// 插入字母到链表尾部
void insertAtTail(LinkList** head, char letter) {
LinkList* newNode = (LinkList*)malloc(sizeof(LinkList));
newNode->letter = letter;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
} else {
LinkList* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
// 打印链表
void printList(LinkList* head) {
LinkList* temp = head;
while (temp != NULL) {
printf("%c ", temp->letter);
temp = temp->next;
}
printf("\n");
}
int main() {
LinkList* list = createEmptyList();
// 将26个英文小写字母添加到链表
for (char i = 'a'; i <= 'z'; i++) {
insertAtTail(&list, i);
}
printList(list); // 打印链表内容
return 0;
}
```
这个程序首先创建了一个空链表,然后循环将26个小写字母插入到链表的尾部。最后,它会打印出链表的内容。
阅读全文