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); } }
public bool NodeChange4Sort(LinkedListNode <T> node) { if (m_nodeHashDic.ContainsKey(node.GetHashCode()) == false) { return(false); } sort(node); return(true); }
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); }
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); }
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); }
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); }
/// <summary> /// 检测节点是否在里面 /// </summary> /// <param name="node"></param> /// <returns></returns> private bool checkNodeIn(LinkedListNode <T> node) { return(m_nodeHashDic.ContainsKey(node.GetHashCode())); }
public bool Contains(LinkedListNode <T> node) { return(m_nodeHashDic.ContainsKey(node.GetHashCode())); }
public override int GetHashCode() { return(_node.GetHashCode()); } // GetHashCode