public BasicStack(T value) { var item = new StackNode <T>(value); Top = item; stackSize = 1; }
public void Push(T value) { var item = new StackNode <T>(value) { Next = Top }; Top = item; stackSize++; }
public T Pop() { if (IsEmpty()) { throw new InvalidOperationException("Stack is empty."); } var item = Top; Top = Top.Next; stackSize--; return(item.Value); }
public bool push(IStackNode <DataType> node) { if (isEmpty()) { _currentTopNode = node; } else { IStackNode <DataType> prevNode = _currentTopNode; node.Prev = prevNode; prevNode.Next = node; _currentTopNode = node; } _size++; return(true); }
public bool push(DataType data) { if (isEmpty()) { _currentTopNode = new StackLinkedListNode <DataType>(data); } else { IStackNode <DataType> topNode = new StackLinkedListNode <DataType>(data); IStackNode <DataType> prevNode = _currentTopNode; topNode.Prev = prevNode; prevNode.Next = topNode; _currentTopNode = topNode; } _size++; return(true); }
public DataType pop() { if (isEmpty()) { return(default(DataType)); } DataType temp = _currentTopNode.data; if (_size == 1) { _currentTopNode = null; } else { IStackNode <DataType> prevTopNode = _currentTopNode.Prev; prevTopNode.Next = null; _currentTopNode = prevTopNode; } _size--; return(temp); }
public void init() { _size = 0; _currentTopNode = null; }