第三章:栈与队列算法设计题(10)

#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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值