给定一个单链表,其数据元素为正整数,要求实现一个函数,
可输出该表中偶数结点的个数,若表空,输出0。
#include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int Status;
typedef int ElemType;
//定义
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
//初始化
Status InitList(LinkList &L)
{
L = new LNode;
L->next = NULL;
return OK;
}
//尾插法创建
void CreateList(LinkList L, int n)
{
LNode *p, *r;
int i;
r = L;
for(i = 0; i < n; ++i)
{
p = new LNode;
cin >> p->data;
r->next = p;
r = p;
}
r->next = NULL;
}
//统计偶数结点的个数
int CountEven(LinkList L)
{
int sum = 0;
LNode *p = L->next;
if (p == NULL)
return 0 ;
while(p)
{
if (p->data % 2 == 0)
{
sum++;
}
p = p->next; //注意这里p指向下一结点不要写在if分支里面了
}
return sum ;
}
int main()
{
LinkList La = NULL;
int n;
InitList(La);
cin >> n;
CreateList(La, n);
cout << CountEven(La);
return 0;
}
输出单链表中偶数结点的个数
最新推荐文章于 2022-12-03 23:45:27 发布