public void Push(int _element) { if (headNode == null) { // создать узел, сделать его головным this.headNode = new Node(); this.headNode.Element = _element; // этот же узел и является хвостовым this.tailNode = this.headNode; // следующего узла нет this.headNode.SetNextNode(null); } else { // создать временный узел Node newNode = new Node(); // следующий за предыдущим хвостовым узлом - это наш временный новый узел this.tailNode.SetNextNode(newNode); // сделаь его же новым хвостовым this.tailNode = newNode; this.tailNode.Element = _element; // слудующего узла пока нет this.tailNode.SetNextNode(null); } ++this.Length; }
public void Reverse() { //Создаем 1 вспомогательную ссылку и ссылку на новую голову. Node helpNode = new Node(); Node newHead = null; /* Смещаем голову на следующий элемент, пока не дойдем до конца, после чего у реальной головы ставим next в newHead, и newHead присваиваем этот узел. Рекомендую проделать на бумажке для понимания. */ while ((helpNode = headNode) != null) { headNode = headNode.Next; helpNode.next = newHead; newHead = helpNode; } headNode = newHead; }
public void SetNextNode(Node _nextNode) { this.next = _nextNode; }