求单链表中数据值是偶数的节点个数的算法

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:48:04
谢谢
很急

很简单啊,你从头开始遍历一遍。如果是偶数就把计数累加1.
伪代码吧,机器上没有编译环境。

//节点定义,一般你的课本上应该有类似的
typedef struct Node
{
int value;
Node* next;
}MyNode;

typedef struct Chain
{
Node* head;//假设有头节点,所谓头节点就是单独在链表前加的一个没有数值,next指向真正的第一个节点的节点.作用是使第一个节点也用next指针获得
}MyChain;

int GetEvenNum(MyChain L)
{
Node* p=L.head;//指向正在遍历的节点,初始为头节点
int num;//个数统计值

do{
p=p->next;//指向下一个节点,第一次是相当于指向了第一个真症结点
if(p->value%2==0)//模2为零,表示是偶数
{num++;}
//否则,不加
}while(p->next)//如果p的下一个节点不为空,表示还没到结尾,继续循环
//到达结尾,推出while,返回num
return num;
}