上QQ阅读APP看书,第一时间看更新
结点的删除
例如下面这个链表:
(A)→(B)→(C)→(D)→(E)→…→NULL
因为链表中唯一能够找到元素的办法是通过它上一个元素的指针,所以如果我们将某个元素直接删除,这个元素所指向的元素和它之后的所有元素都没有办法再找到了,为了解决这个问题,一般采取这样的办法:记录下要删除的元素之前的那个元素,在删除元素之前,把这个元素的指针指向要删除的那个元素指针指向的元素,比如说现在要删除这个链表的元素B,先找到它之前的元素A,在删除B之前将A的指针指向C,然后再删除B,这样在删除B之前,就已经把B从链表里面剔了出来,如图1.2所示。
图1.2
上面的例子中操作符free用来删除一个变量,即在内存中释放某个变量所对应的地址,使得之后系统可以利用这块内存做别的事情,这样比较节省内存空间。我们应养成及时释放无用的内存空间的好习惯。