#include <stdio.h> #include <string.h> #define MAXSIZE 100 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define Status int /* 以递归算法求单链表中的 1.最大数; 2.结点个数; */ typedef struct { int number; }ElemType; typedef struct LNode{ ElemType e; LNode *next; }LNode,*LinkList; LinkList L; void MAX(LinkList L,ElemType &max) { LinkList p = L; if(p->e.number > max.number ) max = p->e; if(p->next) MAX(p->next,max); } void Jie(LinkList L,int &num) { LinkList p = L; if(p) num++; if(p->next) Jie(p->next,num); } int main() { //为简化过程,这里直接将链表结构打出; L = new LNode; L->e.number = 12; L->next = new LNode;L->next->next=NULL; L->next->e.number = 6; L->next->next= NULL; ElemType max;max.number = -1; MAX(L,max);//求出链表中最大值! printf("MAX 等于 : %d \n",max.number); int num=0; Jie(L,num);printf("结点个数为: %d \n",num); return 0; }