C 链表

 

  在接下来的时间里面,我们准备为大家介绍"链表"。


  (1)为什么需要链表?

      在前面的学习中,我们了解到数组可以存放多个同类型的数据,但是,数组在定义时需要确定

      数组的大小,如果某些情况不能预先确定要存放多少个数据,又或者,每一次存放数据的数量

      都会发生变化,那么,我们如何去解决这些问题呢?

      所以,我们就需要使用链表去处理这些情况了。

 

  (2)什么是链表?

     1、链表是由多个节点组成。

     2、每个节点就是一个结构体所定义的对象。

     3、每个节点之间通过(结构体)所定义的一个或多个(指针变量)来链接,

      (即通过结构体的指针,指向下一个节点,或上一个节点),从而形成一个链表。

   

  (3)

       例子:

     

        struct ST  //定义了结构体ST

        {

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

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

        };   

 

        struct ST a,b,c;

 

        a.next = &b;  //通过&运算符,把结体变量b的内存地址取出来,并赋给

                  结构体变量a中的next成员,所以,a节点就指向了b节点。

 

        b.next = &c;  //通过&运算符,把结体变量c的内存地址取出来,并赋给

                  结构体变量b中的next成员,所以,b节点就指向了c节点。

 

        c.next = NULL; //由于c节点后面没有节点了,所以,就给c中的next成员赋一个Null的

                  空值,这样,next成员就不会再指向内存中的任何地址了。

 

       

  小结:

   通过上面的代码操作,就形成了一个链表,该链表,就从节点a开始,然后,通过节点a

   中的next成员指向节点b,然后,节点b的next成员指向节点c,从而形成了一个链表。

 

 

 

   非常好,现在,我们已经掌握了C中的“链表”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

      不要停留在理论规则上面,快动起来吧!

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练