求教一个数据结构单链表的题目~~~最好可以解释以下

 我来答
wanli5334
2012-10-31 · TA获得超过175个赞
知道答主
回答量:49
采纳率:0%
帮助的人:48.2万
展开全部
#include <ansi_c.h>#include <stdlib.h>
#define Length 10
typedef struct LNode
{
int elem;
struct LNode *pNext;
}LNode, *LinkList;

LNode * CreatLinkList(int n);
int GetEvenNumAndMaxValue(LinkList L, int *Max, int *EvenNum);

void main()
{
LinkList L;
int Max = 0, EvenNum = 0, Result = 0 ;

L = CreatLinkList(Length);
Result = GetEvenNumAndMaxValue(L, &Max, &EvenNum);
printf("最大值为:%d, 偶数数字的个数%d", Max, EvenNum);
}

int GetEvenNumAndMaxValue(LinkList L, int* Max, int* EvenNum)
{
int i = 0;
LinkList p, q;

p = L;
q = p->pNext;

*EvenNum = 0;

if(p->pNext == NULL)
{

return -1;
}

*Max = p->elem;

while(q!=NULL)
{

if(p->elem < q->elem)
{
*Max = q->elem;
}

if(((p->elem)%2) == 0)
{
(*EvenNum) += 1;
}

p = p->pNext;
q = q->pNext;
}

if(((p->elem)%2) == 0) //对最后一个元素作判断
{
(*EvenNum) += 1;
}

return 0;
}

LinkList CreatLinkList(int n)
{
int i = 0;
LinkList p, q;

printf("Please input the Data for LinkList Node:\n");

p = q = (LinkList)malloc(sizeof(LNode)); //已经有一个节点
p->pNext = NULL;
scanf("%d", &p->elem);

do
{
p->pNext= (LinkList)malloc(sizeof(LNode));
p = p->pNext;
scanf("%d", &p->elem);
p->pNext = NULL;
i++;
}while(i<n-1); // 所以这里n-1;

return q;
}
百度网友d896b90
2012-11-01 · TA获得超过176个赞
知道答主
回答量:72
采纳率:0%
帮助的人:19.3万
展开全部
去看 c2-2.h 的文件啊
里面有很多函数 包括创建链表的函数 应该存在一个参数是制定数据元素个数的

输出偶数的个数只要用for循环 不断的让一个指针指向当前的节点的next指针
如果该节点是偶数 那么就记下1

3和2 类似的 思想基本就这样 你没有c2-2.h文件给我们看
没人能用具体程序解答的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式