码迷,mamicode.com
首页 > 其他好文 > 详细

Software-DataStructure 三年一直迷糊的链表

时间:2017-11-06 00:06:05      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:play   alt   描述   数据   interface   ges   entry   参数   return   

2017-11-05 23:31:32 三年来其实一直迷糊的链表顿悟

三年前 2014年下半年一直未理解而死敲代码,希望能量变引起质变的 数据结构中  链表的顿悟

(查找算法中的二分查找。排序中的快速排序已与2015年专攻 JavaScript 时理解突破了)

第一本 算法学习书《算法精解》以及让我理解了排序和查找 分治算法的书

技术分享 

在学习 Java 描述的 数据结构时,对链表有了新的理解,FirstNode 的 插入及重置,默认构造函数的实现。

技术分享

插入的部分:

newNode 不再存在,参数 newEntry 也是如此,行为像是一个局部变量。

 

继续插入新的节点时,注意 Node 的两个构造函数

1. 第一个构造函数 Node Pointer 为null, 为第一个节点所准备的。

2. 常规的链中的节点:有data,有 pointer. 与 Node自动对应。

技术分享

 

技术分享
 1 public final class LinkedBag<T> implements BagInterface<T>{
 2 
 3     private Node firstNode;
 4     private int numberOfEntries;
 5 
 6     public LinkedBag() {
 7         firstNode = null;
 8         numberOfEntries = 0;
 9     } // end default constructor
10 
11     private class Node // private inner class
12     {
13         private T data; // Entry in bag
14         private Node next; // Link to next node
15 
16         private Node(T dataPortion)
17         {
18             this(dataPortion, null);
19         } // end constructor
20 
21         private Node(T dataPortion, Node nextNode)
22         {
23             data = dataPortion;
24             next = nextNode;
25         } // end constructor
26 
27         private T getData(){
28             return data;
29         }
30 
31         private void setData(T newData){
32             data = newData;
33         }
34 
35         private Node getNextNode(){
36             return next;
37         }
38 
39         private void setNextNode(Node nextNode){
40             next = nextNode;
41         }
42     }
43 
44     /** Adds a new entry to this bag.
45      * @param newEntry  The object to be added as a new entry.
46      *                  @return True
47      */
48     public boolean add(T newEntry) // OutOfMemoryError possible
49     {
50         // Add to beginning of chain.
51         Node newNode = new Node(newEntry);
52         //newNode.next = firstNode; // Make new node reference rest of chain.
53                                     //(first node is null if chain is empty)
54         newNode.setNextNode(firstNode);
55 
56         firstNode = newNode;
57         numberOfEntries++;
58 
59         return true;
60     }
View Code

 

Software-DataStructure 三年一直迷糊的链表

标签:play   alt   描述   数据   interface   ges   entry   参数   return   

原文地址:http://www.cnblogs.com/masterSoul/p/7790013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!