示例#1
0
 public void Remove(LinkedListNode <T> node)
 {
     if (m_nodeHashDic.TryGetValue(node.GetHashCode(), out node))
     {
         m_nodeHashDic.Remove(node.GetHashCode());
         m_objHashDic.Remove(node.Value.GetHashCode());
         m_linkList.Remove(node);
     }
 }
示例#2
0
        public bool NodeChange4Sort(LinkedListNode <T> node)
        {
            if (m_nodeHashDic.ContainsKey(node.GetHashCode()) == false)
            {
                return(false);
            }

            sort(node);
            return(true);
        }
示例#3
0
        public LinkedListNode <T> AddLast(LinkedListNode <T> node)
        {
            if (checkNodeIn(node))
            {
                return(null);
            }

            m_linkList.AddLast(node);
            m_objHashDic.Add(node.Value.GetHashCode(), node);
            m_nodeHashDic.Add(node.GetHashCode(), node);

            return(node);
        }
示例#4
0
        public LinkedListNode <T> AddLast(T value)
        {
            if (checkValueIn(value))
            {
                return(null);
            }

            LinkedListNode <T> node = new LinkedListNode <T>(value);

            m_linkList.AddLast(node);
            m_objHashDic.Add(value.GetHashCode(), node);
            m_nodeHashDic.Add(node.GetHashCode(), node);

            return(node);
        }
示例#5
0
        public LinkedListNode <T> Remove(T value)
        {
            LinkedListNode <T> node = null;
            int objHash             = value.GetHashCode();

            if (m_objHashDic.TryGetValue(objHash, out node) == false)
            {
                return(node);
            }

            m_objHashDic.Remove(objHash);
            m_nodeHashDic.Remove(node.GetHashCode());
            m_linkList.Remove(node);
            return(node);
        }
示例#6
0
        public LinkedListNode <T> AddAfter(LinkedListNode <T> node, T newValue)
        {
            if (checkNodeIn(node))
            {
                return(null);
            }

            LinkedListNode <T> newNode = new LinkedListNode <T>(newValue);

            m_linkList.AddAfter(node, newNode);
            m_objHashDic.Add(newNode.Value.GetHashCode(), newNode);
            m_nodeHashDic.Add(newNode.GetHashCode(), newNode);

            return(newNode);
        }
示例#7
0
 /// <summary>
 /// 检测节点是否在里面
 /// </summary>
 /// <param name="node"></param>
 /// <returns></returns>
 private bool checkNodeIn(LinkedListNode <T> node)
 {
     return(m_nodeHashDic.ContainsKey(node.GetHashCode()));
 }
示例#8
0
 public bool Contains(LinkedListNode <T> node)
 {
     return(m_nodeHashDic.ContainsKey(node.GetHashCode()));
 }
示例#9
0
 public override int GetHashCode()
 {
     return(_node.GetHashCode());
 } // GetHashCode