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中的“链表”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)