下列程序的功能是建立一个有3个结点的单向链表,然后求各个结点数值域data中数据的和。请填空。struct NODE{ int data; struct NODE *next;};int main(void){ struct NODE *p,*q,*r; int sum=0; p=(struct NODE *) malloc(sizeof(struct NODE) ); q=(struct NODE *) malloc(sizeof(struct NODE) ); r=(struct NODE *) malloc(sizeof(struct NODE) ); p->data=100; q->data=200; r->data=300; _______; _______;_______; sum=p->data+p->next->data+p->next->next->data; printf("%d\n",sum); return 0;}