已知线性表{a0,a1,……,an-1}元素按链式存储,且每个元素都是不相等的整数。编写算法将表中所有值为奇数的元素加100。
例如L=(1,2,3,4,5,6,7,8)
操作后变为L=(101, 2,103, 4,105, 6,107, 8)
遍历链表所有节点,判断元素是奇数则加100就行了
#include <stdio.h>
typedef struct _linknode
{
int data;
_linknode *next;
}linknode,*linklist;
void create(llinklist s)
{
linklist p = s;
for(int i=1;i<=8;i++)
{
linklist q = (linklist)malloc(sizeof(linknode));
q->next = NULL;
q->data = i;
p->next = q;
p = q;
}
}
void add(linklist s)
{
linklist p = s->next;
while(p != NULL)
{
if(p->data % 2 == 1)
p->data += 100;
p = p->next;
}
}
void print(linklist s)
{
linklist p = s->next;
while(p != NULL)
{
printf("%d ",p->data);
p = p->next;
}
}
int main()
{
linknode node;
create(&node);
add(&node);
print(&node);
return 0;
}