建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串,根据输入的字符串,先找到相应的结点,后删除之。
1条回答 默认 最新
关注 【以下回答由 GPT 生成】
#include <stdio.h> #include <stdlib.h> #include <string.h> // 定义链表节点 struct Node { char data[50]; struct Node* next; }; // 初始化链表 struct Node* initLinkedList() { return NULL; } // 在链表尾部插入节点 void insertNode(struct Node** head, char* data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); strcpy(newNode->data, data); newNode->next = NULL; if (*head == NULL) { *head = newNode; } else { struct Node* current = *head; while (current->next != NULL) { current = current->next; } current->next = newNode; } } // 从链表中删除指定的字符串 void deleteNode(struct Node** head, char* data) { struct Node* temp, *prev; temp = *head; if (temp != NULL && strcmp(temp->data, data) == 0) { *head = temp->next; free(temp); return; } while (temp != NULL && strcmp(temp->data, data) != 0) { prev = temp; temp = temp->next; } if (temp == NULL) { printf("String not found in the list\n"); return; } prev->next = temp->next; free(temp); } // 打印链表 void printLinkedList(struct Node* head) { struct Node* current = head; while (current != NULL) { printf("%s -> ", current->data); current = current->next; } printf("NULL\n"); } int main() { struct Node* head = initLinkedList(); insertNode(&head, "hello"); insertNode(&head, "world"); insertNode(&head, "hello"); insertNode(&head, "apple"); printf("Original List: \n"); printLinkedList(head); deleteNode(&head, "hello"); printf("After deleting 'hello' from the list: \n"); printLinkedList(head); return 0; }
希望这个代码示例能够帮到您,如果有任何问题,请随时问我。
【相关推荐】
- 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7496193
- 你也可以参考下这篇文章:C语言 定义一个单向链表,依次从键盘输入10个整数,通过动态内存分配建立链表的节点,将节点按保存整数值从小到大的顺序插入到单链表中,最后输出这个单链表
- 您还可以看一下 尹成老师的C语言系列之 字符串相关算法课程中的 寻找字符串最长数字串小节, 巩固相关知识点
- 除此之外, 这篇博客: 用c语言实现整型变量内容互换中的 对于给定的两个整形变量的值,将两个值的内容进行交换的问题,从两个方面设计解决方案,下面为具体的算法分析及程序。 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀