zoukankan      html  css  js  c++  java
  • 链表简介

    链表中头结点存在的意义:

      便于对链表进行操作

        离散存储【链表】(我们搞底层的开发,类似于SUN公司的类)

        定义:

        n个节点离散分配

        彼此通过指针相连

        每个节点只有一个前驱节点,每个节点只有一个后续节点

        首节点没有前驱节点,尾节点没有后续节点。

        

        专业术语:

        首节点:

        第一个有效节点

        尾节点:

        最后一个有效节点

        头节点:

        头结点的数据类型和首节点的类型一样

        没有存放有效数据,最最前面的,是在

        首节点之前的,主要是为了方便对链表

        的操作。

        头指针:(指向头)

        指向头节点的指针变量

        尾指针:

        指向尾节点的指针

        

    (头结点有可能很大,占的内存可能大,假设我想造一个函数

    输出所有链表的值,那你如果不用头指针类型做形参,那由于

    不同链表的头节点不一样大小,这样就没办法找出形参)

     

     

        确定一个链表需要几个参数:(或者说如果期望一个函数对链表进行操作

        我们至少需要接收链表的那些信息???)

        只需要一个参数:头指针,因为通过它我们可以推出

        链表的所有信息。

    (链表的程序最好一定要自己敲出来)

        分类:

        单链表

        双链表:

        每一个节点有两个指针域

        

        循环链表

        能通过任何一个节点找到其他所有的节点

        非循环链表

      

    (java中变成垃圾内存则会自动释放,但是C和C++则不会,所以要

    手动释放,否则会引起内存泄露。delete等于free)    

        算法:

        遍历

        查找

        清空

        销毁

        求长度

        排序

        删除节点

        插入节点

    算法:狭义的算法是与数据的存储方式密切相关

          广义的算法是与数据的存储方式无关

          泛型:(给你一种假象,只不过牛人从内部都弄好了)

             利用某种技术达到的效果就是:不同的存储方式,执行的操作是一样的

     

    算法的真正学法:很多算法你根本解决不了!!!!!!因为很多都属于

    数学上的东西,所以我们把答案找出来,如果能看懂就

    行,但是大部分人又看不懂,分三步,按照流程,语句,

    试数。这个过程肯定会不断地出错,所以不断出错,不断

    改错,这样反复敲很多次,才能有个提高。实在看不懂

    就先背会。

  • 相关阅读:
    025-Cinder服务-->安装并配置一个本地存储节点(ISCSI)
    023-OpenStack 创建实例类型临时磁盘的讲解
    addClass+siblings+removeClass用意:
    SublimeText 改变 tab的距离
    正则表达式选取数值
    正则表达式用来根据某种匹配模式寻找字符串中的某些单词。
    hasOwnProperty()函数
    翻转字符串算法
    输入框禁用和启用
    什么是thinkphp
  • 原文地址:https://www.cnblogs.com/jiefangzhe/p/10778263.html
Copyright © 2011-2022 走看看