线性表中元素存放在向量A(1,2…,n)中,元素是整数型,
写出用递归方法求出A中最大元素的算法
#include<iostream.h>
#include<malloc.h>
#define NULL 0
typedef struct ListLink
{
int data;//所存元素
struct ListLink *next;//???
}node;
node *initlist()//创建单链表
{
node *p,*s,*head;
int a,flage=1;//flage是循环控制变量
head=(node *)malloc(sizeof(node));//建立头结点,由Head指向
head->data=0;
head->next=NULL;//头接点不用
p=head;
cout<<"请输入接点,以0结束:"<<endl;
while(flage)
{
cin>>a; //输入0表示结束
if(a!=0)
{
s=(node *)malloc(sizeof(node));//建立下一个结点,由S指向
s->data=a;
s->next=NULL;
p->next=s;
p=p->next;//把S结点连接到前面建立的单链表中
}
else flage=0;
}
return head;
}
int max1(node *head)
{
int max;
node *p=head;//*****************?************************
if (p->next==NULL )
max=p->data; //如果只有一个结点,当然是当前元素最大
else if (p->next->next=NULL )
max=(p->data>=p->next->data?p->data:p->next->data); //如果只有两个结点,取二者较大者
else //下面是三个及三个以上结点数情况
(p->data>max1(p->next)?p->data:max1(p->next)); //递归
return max;
}
}*/
void main()
{
node *head,*p;
int m;
head=initlist();
p=head;
cout<<"最大值为:";
m=max1(p);
cout<<m<<endl;
}
为什么结果不对的啊,高手帮忙哈,谢谢