| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <HTML><HEAD><TITLE>Simple Stack Object Example</TITLE><SCRIPT LANGUAGE="JavaScript"><!-// This is the constructor for our stack object// If the "length" instance variable is 0, the stack is emptyfunction oStack() {	this.top = null;	this.length = 0;	this.isEmpty = oStackIsEmpty;	this.push = oStackPush;	this.pop = oStackPop;	}// This method tells us if this oStack object is emptyfunction oStackIsEmpty() {	if (this.length == 0)		return true;	else		return false;	}// This method pushes a new element onto the top of the stackfunction oStackPush( newData) {	// Create the new element	var newElement = new oStackElement();	// Add the data to it	newElement.setData( newData);	// Put the current top in our next field	newElement.setNext( this.top);	// Assign our new element to the top	this.top = newElement;	this.length++;	}	// This method pops the top element off of the stackfunction oStackPop() {	// Put old top away for safe keeping	var oldTop = this.top;	// Get the new top	this.top = this.top.getNext();	this.length-;	return oldTop;	}// This is the constructor for an element in our stack object// The "data" variable holds our actual data (whatever it may be)// and the "next" variable holds the oStackElement object that is// 'underneath' this oStackElement object.function oStackElement() {	this.data = 0;	this.next = null;	this.setData = oStackElementSetData;	this.getData = oStackElementGetData;	this.setNext = oStackElementSetNext;	this.getNext = oStackElementGetNext;	}// This method sets the data field of this oStackElementfunction oStackElementSetData( newData) {	this.data = newData;	}// This method returns the data field of this oStackElementfunction oStackElementGetData() {	return this.data;	}// This method sets the next field of this oStackElementfunction oStackElementSetNext( newNext) {	this.next = newNext;	}// This method returns the next field of this oStackElementfunction oStackElementGetNext() {	return this.next;	}// create a new oStack objectvar stack1 = new oStack();// Fill it with something interesting// In this case, the names of my catsstack1.push( "Puddin' Head")stack1.push( "Sunshine")stack1.push( "Shadow")stack1.push( "Sassy")stack1.push( "Toby")stack1.push( "Sandy")stack1.push( "Pixie")stack1.push( "Edi")stack1.push( "Gizmo")// Get the number of items in the stackvar numElements = stack1.length;// Print out the contents of the stackfor (var i = 0; i < numElements; i++)	document.write( stack1.length + " - " + stack1.pop().getData() + "<br>");//-></SCRIPT></HEAD><BODY></BODY></HTML>
 |