链表简介

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

  便于对链表进行操作

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

    定义:

    n个节点离散分配

    彼此通过指针相连

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

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

    

    专业术语:

    首节点:

    第一个有效节点

    尾节点:

    最后一个有效节点

    头节点:

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

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

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

    的操作。

    头指针:(指向头)

    指向头节点的指针变量

    尾指针:

    指向尾节点的指针

    

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

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

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

 

 

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

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

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

    链表的所有信息。

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

    分类:

    单链表

    双链表:

    每一个节点有两个指针域

    

    循环链表

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

    非循环链表

  

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

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

    算法:

    遍历

    查找

    清空

    销毁

    求长度

    排序

    删除节点

    插入节点

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

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

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

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

 

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

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

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

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

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

就先背会。

posted on 2019-04-27 12:01  JieFangZhe  阅读(135)  评论(0编辑  收藏  举报

导航