C语言 输出节点信息

 

  1、 输出节点信息

    输出节点信息,其实,就是通过 printf 函数把链表中的节点信息输出,同时,每个节点中都有一个指针成员,

  用于指向下一个节点,这样,就可以找出整个链表中的每一个节点,然后,再输出就可以了。

 

  2、例子:   

        struct ST  //定义了结构体ST

        {

         int Number;     //编号,用于记录一个整型数

         struct ST * next;  //定义一个ST结构体的指针变量next成员,指向链表中下一个节点

        };   

 

        void main()

        {

          struct ST * head; //定义了结构体ST的指针变量head作为第一个节点

          int len = sizeof( struct ST ); 

 

          head = ( struct ST * ) malloc( len ); //分配第1个节点的内存空间

          head->Number = 1;

    

          head->next = ( struct ST * ) malloc( len ); //分配第2个节点的内存空间

          head->next->Number = 2;

 

          head->next->next = ( struct ST * ) malloc( len );//分配第3个节点的内存空间

          head->next->next->Number = 3;

 

          //---------------------------------------------//

          //以下代码是本次要学习与分析的代码//

          //---------------------------------------------//

 

          head->next->next->next = NULL; //第3个节点的next成员赋值为NULL

                           代表第3个节点后没有其它节点了。

 

          struct ST * p;//定义了结构体ST的指针变量p ,用于指向当前节点

 

          p = head; //让p指向链表中第一个节点head

                 这里是将head的地址赋给了p。所以,p就指向了head。

                 

          

          do

          {

            printf("%d",p->Number);//输出p所指向的节点中,成员Number的值。

            p = p -> next; //让p指向下一个节点。

          }while( p!=NULL); //判断p是否等于NULL空值,如果相等则结束循环。

        }   

 

  例子分析:

  (1)例子中大部分的代码是使用了上一章“动态链表”学习中代码,包括动态生成第1,2,3个节点

     并让它们形成链表的代码。

  (2)我们的本次的分析从定义结构体指针变量p开始,该变量的作用是指向链表中当前的节点。

  (3)首先,我们通过代码p=head,让p指向链表中第一个节点head。

  (4)然后,我们进入到do...while循环中,首先通过printf函数,输出当前节点中的Number成员

     中的值,而当前节点是第一个节点,所以,它的Number成员中的值为1。即输出1。

  (5)然后,我们再执行p = p->next 这行代码,而p中的next成员是指向下一个节点,即第2个节点的

     内存空间址,所以,将它赋给p,就等于将p指向第2个节点

  (6)然后,再判断p是否等于NULL,如果,等于NULL就结束循环,因为,后面没有节点了。

     而在第3个节点中,它的next成员是被赋为NULL的。所以,当处理第3个节点时就会

     结束循环。

 

 

  小结:

    (1)另外定义一个结构体指针变量p用于指向当前节点,就不用再使用head->next->next->next

       这样的代码了。

    (2)注意为链表中最后一个节点的next成员设置一个NULL,空值,代表链表结束。

    (3)把链表中第1个节点赋值给p,就是让p指向了链表中第1个节点,

       然后,通过p调用节点中的next成员,并将next成员所指向的内存空间地址赋给p,

       就是将p指向下一个节点,这样,就可以找到链表中每一个节点了。

 

=======================================================================

非常好,现在,我们已经掌握了C语言中的(输出节点信息)但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)