Dev.C++链表基础:链表在数据插入和数据清除方面比数组要快,然而却不支持数据随机查找,要慎重使用。
这一次,***就不贴代码了毕竟他并不难
老板:扣工资!不解释!
呜呜呜,我怎么那么惨啊!
那么接下来,我来介绍一下链表。
链表,一般用结构体实现,由值域与链域组成。
值域,便是这一格的数据
链域,则是它指向的下一格
至于循环链表,就是最后一格指向了的一格
至于双向链表,就是这一格指向了下一格,同时也指向了上一格(开多一个数据)
看完这个图,你就懂了。
链表基操:链表的数据插入,数据抹除与遍历
数据插入和数据抹除,因为它叫链表,所以不难。
像这样
只需要更改它的链域,让前一个位置的链域指向它,它的链域指向后一个位置就好了。
至于双向链表,是一个道理,让它的左链域指向前一个位置,下一个位置的左链域指向它就好了。
还有这样
让被抹除位置的前一项的链域指向被抹除位置的后一项,再清除数据就好了。
双向链表也一样,让被抹除数据的后一项左链域指向被抹除数据的前一项就好了。
遍历链表,和数组类似,用一个for,但不是i++,而是i=你定义的链域的第i项。很好理解,就是按链域向下遍历过去就可以了。
但是,数组可以直接调出其中的任意一项,如a[i],而链表,要一项一项向下找过去,用一个if,如果找到再进行操作,然后break掉就ok。
链表不难,在一些特殊情况下(如图论)很好用。它不像数组,要让后面的全部向前或后挪一位。
也因为它就是这样一个链式结构,并不好遍历。依情况而选择哟!