Javascript Algorithm Number tower Of Hanoi
class Stack {//from ww w . ja va 2 s . co m constructor () { this.items = []; } push(element){ this.items.push(element); } pop(){ return this.items.pop(); } peek(){ return this.items[this.items.length-1]; } isEmpty(){ return this.items.length == 0; } size(){ return this.items.length; } clear(){ this.items = []; } print(){ console.log(this.toString()); } toString(){ return this.items.toString(); } } function towerOfHanoi(n, from, to, helper){ if (n > 0){ towerOfHanoi(n-1, from, helper, to); to.push(from.pop()); console.log('-----'); console.log('Source: ' + from.toString()); console.log('Dest: ' + to.toString()); console.log('Helper: ' + helper.toString()); towerOfHanoi(n-1, helper, to, from); } } var source = new Stack(); source.push(3); source.push(2); source.push(1); var dest = new Stack(); var helper = new Stack(); towerOfHanoi(source.size(), source, dest, helper); source.print(); helper.print(); dest.print();