Instructions
Requirements and Specifications
Source Code
#include "integers.h"
bool divisible_by_three(node *n)
{
int sum = 0;
node *curr = n;
while (n != NULL) {
sum += curr->digit;
curr = curr->next;
}
return sum % 3;
}
bool equal(node*a, node *b)
{
node *aCurr = a;
node *bCurr = b;
while (1) {
if (aCurr->next == NULL && bCurr->next != NULL) {
return false;
}
if (aCurr->next != NULL && bCurr->next == NULL) {
return false;
}
if (aCurr->digit != bCurr->digit) {
return false;
}
if (aCurr->next == NULL && bCurr->next == NULL) {
break;
}
aCurr = aCurr->next;
bCurr = bCurr->next;
}
return true;
}
void increment(node *n)
{
node *curr = n;
while (1) {
if (curr->digit < 9) {
curr->digit++;
break;
}
curr->digit = 0;
if (curr->next == NULL) {
node* nn = (node *)malloc(sizeof(node));
nn->digit = 1;
nn->next = NULL;
curr->next = nn;
break;
}
curr = curr->next;
}
}