Advertisement
ASP_Volume3 Data Structures #45956

Extensible stack implementation

A stack is a LIFO (Last in First out) collection. It can store any kind of data and has the possibility to extend its maximum number of objects. Comments would be greatly appreciated!

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
using System;
namespace MyLibrary.Collections
{
	public class MyStack
	{
		private long nIncrement;
		private long nElements;
		private object[] elements;
		public MyStack(long initialCapacity, long nIncrement)
		{
			this.nElements = 0;
			this.nIncrement = nIncrement;
			elements = new object[initialCapacity];
		}
		public void Push(object element)
		{
			// If needed, extends stack's capacity to store more element.
			if (nElements == elements.Length)
			{
				object[] temp = new object[nElements + nIncrement];
				for (int i=0; i<nElements; i++)
					temp[i] = elements[i];
				elements = temp;
			}
			// Pushes element at the top of the stack.
			elements[nElements] = element;
			nElements++;
		}
		public object Pop()
		{
			if (IsEmpty())
				return null;
			else
			{
				object element = elements[nElements - 1];
				nElements--;
				return element;
			}
		}
		public object Peek()
		{
			if (IsEmpty())
				return null;
			else
				return elements[nElements - 1];
		}
		public bool IsEmpty()
		{
			if (nElements == 0)
				return true;
			else
				return false;
		}
		public long Length
		{
			get
			{
				return nElements;
			}
		}
	}
}
Upload
Upload
Original Comments (3)
Recovered from Wayback Machine