?文章來源地址http://www.zghlxwxcb.cn/news/detail-747087.html
代碼實現(xiàn)
?
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() // 創(chuàng)建一個鏈表 11 { 12 Node *head = NULL; // 定義頭指針 13 Node *tail = NULL; // 定義尾指針 14 /*并初始為null*/ 15 float Yuan_Su; // 定義元素 16 printf("請輸入多個整數(shù)(用空格分開,并以-1結束):\n"); 17 while (1) 18 { 19 scanf("%f", &Yuan_Su); // 循環(huán)輸入元素 20 21 if (Yuan_Su == -1) 22 { 23 break; // 輸入-1,退出循環(huán) 24 } 25 26 Node *newNode = (Node *)malloc(sizeof(Node)); // 創(chuàng)建新結點,用malloc分配內(nèi)存 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) // 定義刪除鏈表最大值的函數(shù) 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 }
?
測試結果
?
文章來源:http://www.zghlxwxcb.cn/news/detail-747087.html
?
到了這里,關于C語言數(shù)據(jù)結構_查找并刪除單鏈表中最大值結點并返回值的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!