c语言利用单链表存储英语词典,可以实现从文件中加载数据,查询单词,删除词条,保存到文件,单链表有专用头结点head
时间: 2024-01-11 13:03:32 浏览: 29
好的,我明白了你的问题。首先,我们需要定义一个单链表的结构体,用于存储英语词典的信息,如下所示:
```c
typedef struct dictNode {
char word[50]; // 存储单词
char meaning[100]; // 存储单词的含义
struct dictNode *next; // 存储下一个词条的指针
} DictNode;
```
我们可以使用这个结构体来定义单链表的头结点:
```c
DictNode *head = NULL;
```
接下来,我们可以实现从文件中加载数据的功能。假设我们的数据文件名为“dict.txt”,每一行包含一个单词和它的含义,中间用空格分隔。我们可以使用以下代码将数据从文件中读取到单链表中:
```c
void loadDictFromFile() {
FILE *fp = fopen("dict.txt", "r");
if (fp == NULL) {
printf("Failed to open file dict.txt\n");
return;
}
char word[50], meaning[100];
while (fscanf(fp, "%s %s", word, meaning) != EOF) {
DictNode *node = (DictNode *)malloc(sizeof(DictNode));
strcpy(node->word, word);
strcpy(node->meaning, meaning);
node->next = head;
head = node;
}
fclose(fp);
}
```
接下来,我们可以实现查询单词的功能。假设我们要查询的单词为“hello”,我们可以使用以下代码进行查询:
```c
void searchWord(char *word) {
DictNode *p = head;
while (p != NULL) {
if (strcmp(p->word, word) == 0) {
printf("%s: %s\n", p->word, p->meaning);
return;
}
p = p->next;
}
printf("The word \"%s\" is not found in the dictionary.\n", word);
}
```
接下来,我们可以实现删除词条的功能。假设我们要删除的单词为“hello”,我们可以使用以下代码进行删除:
```c
void deleteWord(char *word) {
DictNode *p = head, *prev = NULL;
while (p != NULL) {
if (strcmp(p->word, word) == 0) {
if (prev == NULL) {
head = p->next;
} else {
prev->next = p->next;
}
free(p);
printf("The word \"%s\" has been deleted from the dictionary.\n", word);
return;
}
prev = p;
p = p->next;
}
printf("The word \"%s\" is not found in the dictionary.\n", word);
}
```
最后,我们可以实现保存到文件的功能。我们可以使用以下代码将单链表中的数据保存到文件中:
```c
void saveDictToFile() {
FILE *fp = fopen("dict.txt", "w");
if (fp == NULL) {
printf("Failed to open file dict.txt\n");
return;
}
DictNode *p = head;
while (p != NULL) {
fprintf(fp, "%s %s\n", p->word, p->meaning);
p = p->next;
}
fclose(fp);
}
```
这样,我们就实现了使用单链表存储英语词典的功能。
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.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)