链表及其基本操作

来源:互联网 发布:淘宝吉他店铺介绍 编辑:程序博客网 时间:2024/05/01 12:26

           链表是数据项的集合,一个节点中除了存放数据项以外还有指向节点的指针。链表的主要优势是提供了重新有效的组织数据项的能力,虽然这牺牲了快速访问链表中任意节点的代价,但是其对数据操作的方便时这种代价看起来是很值得的。

          一个链表的基本构成应该是一个节点内元素以及指向下一个节点的引用:


        同时有一个构造函数是很有必要的:

              

 构建好一个链表的数据类型后我们就能进行相应的操作了。

1:构建一条链表:构建链表的关键无非就是不断的申请出node格式的数据结构,并且通过节点内的next指针将这些结点链接起来,最后在返回链表的head引用就好了。



通过上面的操作就得到一个以head为头结点的链表。

2:遍历链表:遍历链表的关键是通过head通过next指针不断的访问下一个节点,直到指向一个null。

 

3:增加一个节点:增加节点的关键是先不断的在要增加的地方打断原来的链接,然后构建一个新的链接的过程。当然在增加结点是最特殊的状况值添加末尾以及增加头结点,由于这种情况都比较简单我们不做讨论。我们讨论直接在中间添加的情况。主要的步骤是先找到位置在打断原来的链接将结点添加进去构建一个新的结点的过程。程序的实现是:



4:删除一个节点:其实删除结点与新增一个结点差不多,我们在这里就不进行深入的研究了。

5:链表反向:在面试中遇到最多也是相对来说比较难得结点操作是节点的反向。结点反向的关键操作是

递归版:反向当前结点时先反向后续结点

















                                             
0 0
原创粉丝点击