zoukankan      html  css  js  c++  java
  • 链表基础

    Dev.C++链表基础:链表在数据插入和数据清除方面比数组要快,然而却不支持数据随机查找,要慎重使用。
    这一次,***就不贴代码了毕竟他并不难
    老板:扣工资!不解释!
    呜呜呜,我怎么那么惨啊!
    那么接下来,我来介绍一下链表。
    链表,一般用结构体实现,由值域与链域组成。
    值域,便是这一格的数据
    链域,则是它指向的下一格
    至于循环链表,就是最后一格指向了的一格
    至于双向链表,就是这一格指向了下一格,同时也指向了上一格(开多一个数据)
    看完这个图,你就懂了。


    链表基操:链表的数据插入,数据抹除与遍历


    数据插入和数据抹除,因为它叫链表,所以不难。
    像这样
    插入
    只需要更改它的链域,让前一个位置的链域指向它,它的链域指向后一个位置就好了。
    至于双向链表,是一个道理,让它的左链域指向前一个位置,下一个位置的左链域指向它就好了。


    还有这样
    抹除
    让被抹除位置的前一项的链域指向被抹除位置的后一项,再清除数据就好了。
    双向链表也一样,让被抹除数据的后一项左链域指向被抹除数据的前一项就好了。


    遍历链表,和数组类似,用一个for,但不是i++,而是i=你定义的链域的第i项。很好理解,就是按链域向下遍历过去就可以了。
    但是,数组可以直接调出其中的任意一项,如a[i],而链表,要一项一项向下找过去,用一个if,如果找到再进行操作,然后break掉就ok。


    链表不难,在一些特殊情况下(如图论)很好用。它不像数组,要让后面的全部向前或后挪一位。
    也因为它就是这样一个链式结构,并不好遍历。依情况而选择哟!

    徒手精准绘制链表一个多小时,给个好评呗!

  • 相关阅读:
    【原】 POJ 1308 Is It A Tree? 并查集树结构 解题报告
    终于决定投身Linux怀抱
    Inside the C++ Object Model
    Fedora 下 OpenCV 的安装
    sed 与 awk
    工具链接收藏
    [转] 计算机视觉领域稍微容易中的期刊
    QtCreator开发多文档编辑器(Project 1)
    Fedora 17: Grub Rescue
    做文档类的工作总是让我感到一些烦躁
  • 原文地址:https://www.cnblogs.com/riced/p/13775579.html
Copyright © 2011-2022 走看看