为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
讨论题

躲在星空里_fVZ025 的学生作业:

#include #include // 链表节点结构 typedef struct Node { int data; struct Node* next; } Node; // 创建新节点 Node* create_node(int value) { Node* new_node = (Node*)malloc(sizeof(Node)); new_node->data = value; new_node->next = NULL; return new_node; } // 有序插入(从大到小) void insert_sorted(Node** head, int value) { Node* new_node = create_node(value); // 链表空或新值比头节点大 if (*head == NULL || value > (*head)->data) { new_node->next = *head; *head = new_node; return; } // 找插入位置 Node* current = *head; while (current->next != NULL && current->next->data > value) { current = current->next; } new_node->next = current->next; current->next = new_node; } // 删除所有值为3的节点 void delete_all_3(Node** head) { Node* current = head; Node prev = NULL; while (current != NULL) { if (current->data == 3) { Node* to_delete = current; if (prev == NULL) { // 删除头节点 *head = current->next; } else { // 删除中间或尾部节点 prev->next = current->next; } current = current->next; free(to_delete); } else { prev = current; current = current->next; } } } // 打印链表 void print_list(Node* head) { Node* current = head; while (current != NULL) { printf("%d “, current->data); current = current->next; } printf(”\n"); } // 释放内存 void free_list(Node* head) { Node* temp; while (head != NULL) { temp = head; head = head->next; free(temp); } } int main() { Node* head = NULL; int data[] = {1, 5, 3, 7, 9, 5, 8, 5, 3}; int n = 9; // 数据个数 // 1. 有序插入数据 for (int i = 0; i < n; i++) { insert_sorted(&head, data[i]); } printf("从大到小排序后: "); print_list(head); // 2. 删除所有值为3的节点 delete_all_3(&head); printf("删除所有3后: "); print_list(head); // 释放内存 free_list(head); return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号