求单链表中数据值是偶数的节点个数的算法
发布网友
发布时间:2023-07-14 17:33
我来回答
共1个回答
热心网友
时间:2024-03-29 00:56
很简单啊,你从头开始遍历一遍。如果是偶数就把计数累加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;
}