代码实现
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct Node // 定义一个结构体 5 { 6 float data; 7 struct Node *next; 8 } Node; 9 10 Node *Chuangzao_LinkedList() // 创建一个链表 11 { 12 Node *head = NULL; // 定义头指针 13 Node *tail = NULL; // 定义尾指针 14 /*并初始为null*/ 15 float Yuan_Su; // 定义元素 16 printf("请输入多个整数(用空格分开,并以-1结束):\n"); 17 while (1) 18 { 19 scanf("%f", &Yuan_Su); // 循环输入元素 20 21 if (Yuan_Su == -1) 22 { 23 break; // 输入-1,退出循环 24 } 25 26 Node *newNode = (Node *)malloc(sizeof(Node)); // 创建新结点,用malloc分配内存 27 newNode->data = Yuan_Su; 28 newNode->next = NULL; 29 30 if (head == NULL) // 如果为头为空 31 { 32 head = newNode; // 指向新结点 33 tail = newNode; 34 } 35 else 36 { 37 tail->next = newNode; // 插入链表尾部 38 tail = newNode; // 更新指针 39 } 40 } 41 42 return head; 43 } 44 45 float Shanchu_MaxNode(Node **head) // 定义删除链表最大值的函数 46 { 47 if (*head == NULL) 48 { 49 printf("链表为空!"); 50 return -1; 51 } 52 53 Node *Dang_qian = *head; // 当前结点为头 54 Node *maxNode = NULL; // 最大结点和当前结点前一个为空 55 Node *Qian_yige = NULL; 56 float maxValue = Dang_qian->data; 57 58 while (Dang_qian != NULL && Dang_qian->next != NULL) 59 { 60 if (Dang_qian->next->data > maxValue) 61 { 62 maxValue = Dang_qian->next->data; 63 maxNode = Dang_qian; 64 Qian_yige = maxNode; 65 } 66 else 67 { 68 Dang_qian = Dang_qian->next; 69 } 70 } 71 72 if (maxNode == NULL) 73 { 74 maxNode = *head; 75 *head = (*head)->next; 76 } 77 else 78 { 79 maxNode = maxNode->next; 80 Qian_yige->next = maxNode->next; 81 } 82 83 float maxData = maxNode->data; 84 free(maxNode); 85 return maxData; 86 } 87 88 void printLinkedList(Node *head) 89 { 90 if (head == NULL) 91 { 92 return; 93 } 94 printLinkedList(head->next); 95 printf(" %.2f->", head->data); 96 } 97 98 int main() 99 { 100 Node *head = Chuangzao_LinkedList(); 101 float maxData = Shanchu_MaxNode(&head); 102 printf("删除的最大值为:%.2f\n", maxData); 103 printf("删除链表最大的值后,链表的值如下:\n"); 104 printLinkedList(head); 105 printf("\n"); 106 system("pause"); // vscode中加入可以使cmd可以保留在屏幕上,删除则会一闪而过 107 return 0; 108 }
测试结果
玄机博客
© 版权声明
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
THE END
暂无评论内容