数据结构算法:使用递归求链表中的最大整数,节点个数,平均值
·
话不多说,直接上代码,有疑问直接留言,包解决
// ConsoleApplication13.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdlib.h" #define ElemType int typedef struct LinkListNode { ElemType data; struct LinkListNode * next; }LinkListNode,*PLinkListNode; typedef struct LinkList { PLinkListNode front; }LinkList,*PQLinkList; void test(); void findMaxAndLen(PLinkListNode node); //获取链表的最大值 void En_Link(PQLinkList L,int val); PLinkListNode Init_Link(PQLinkList L); int _tmain(int argc, _TCHAR* argv[]) { test(); return 0; } int max,length=0,sum=0; void test() { LinkList L; PLinkListNode head = Init_Link(&L); int data; scanf_s("%d",&data); while (data!=-1) { En_Link(&L,data); scanf_s("%d",&data); } findMaxAndLen(head->next); printf("最大值为:%d 链表的长度为:%d 所有整数的平均值为:%d",max,length,sum/length); } void findMaxAndLen(PLinkListNode node) //获取链表的最大值 { if(node->next!=NULL) { findMaxAndLen(node->next); } if(node->data>max) { max = node->data; } length++; //链表的总长度 sum+=node->data; } void En_Link(PQLinkList L,int val) { PLinkListNode newNode = (PLinkListNode)malloc(sizeof(LinkListNode));//创建一个新的节点 L->front->next = newNode; newNode->data = val; newNode->next = NULL; L->front = newNode; } PLinkListNode Init_Link(PQLinkList L) { L->front = (PLinkListNode)malloc(sizeof(LinkListNode));//设置一个头节点 L->front->next = NULL; return L->front; }
更多推荐
所有评论(0)