void Clear() { m_beginMarker = new NodeADT <T>(default(T), null, null); m_endMarker = new NodeADT <T>(default(T), m_beginMarker, null); m_beginMarker.m_next = m_endMarker; m_theSize = 0; }
void AddBefore(NodeADT <T> p, T x) { NodeADT <T> newNode = new NodeADT <T>(x, p.m_prev, p); newNode.m_prev.m_next = newNode; p.m_prev = newNode; m_theSize++; }
public NodeADT(T d, NodeADT <T> p, NodeADT <T> n) { m_data = d; m_prev = p; m_next = n; }
void Remove(NodeADT <T> p) { p.m_next.m_prev = p.m_prev; p.m_prev.m_next = p.m_next; m_theSize--; }
void Set(int idx, T newVal) { NodeADT <T> p = GetNode(idx); p.m_data = newVal; }