下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和, 请填空。 #include <stdio.h> #include <stdlib.h> struc

admin2009-03-16  33

问题 下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,
请填空。
     
        #include   <stdio.h>
        #include   <stdlib.h>
        struct  NODE{ int  data;
                      struct NODE*next;
                    };
        main()
        { structNODE *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;
          p->next=q;     q->next=r;     r->next=p;
          sum=p->data+p->next->data+r->next->next[  ];
          printf("%d\n", sum);
        }

选项

答案->next->data

解析 自定义结构体类型名为Node,并定义指向结点类型的指针*p,*q,*r。它们共有两个成员:成员data是整型,成员 next是指针类型,题目要求求结点数值域的和,也就是求p->data+q->data+r->data的值,p->data表示取p所指结点的值, p->next->data表示取q指针所指结点中的值,现在p所指结点和q所指结点的值已经取到,就差r所指结点中的值,题目中已知r->next指向的是p->data,如果想得到r指针所指结点的值需要将最后的指针指向r->data,所以答案为 ->next->data。
转载请注明原文地址:https://jikaoti.com/ti/M3K0FFFM
0

最新回复(0)