js栈 Stack类和队列Queue类

1,•ToPrimitive(Number): 将一个对象值转换为原始值,首先调用obj.valueOf().如果返回值是一个原始值,则返回这个原始值.如果不是,则再调用obj.toString().如果返回值是个原始值,返回这个原始值.否则,抛出TypeError异常.
•ToPrimitive(String): 和上面的方法类似,只是优先调用obj.toString()方法而不是obj.valueOf().

2,创建对象的方法:

 var x=new object();

var  x={ };

var obj={

name={

first:bob;

last:mike;

},

age:23;

}

3,创建数组的方法:

var x=new Array();

var x=[ ];

4,创建和使用栈:利用数组实现数据的存储删除读取等。

栈是先进后出。

function Stack(){

var items[];

this.push=function(element){

items.push(element);

}

this.pop=function(){
return items.pop();

}

this.peek=function(){

return items.peek();

}

this.isEmpty=function(){

returrn items.length==0;

}

this.size=function(){

return items.length;

}

this.clear=function (){

items=[];

}

this.print=function(){
return items.toString();

}

使用栈:

var stack=new Stack();

stack.push(5);

stack.push(8);stack.pop();stack.size();stack.print();stack.peek();stack.isEmpty();stack.clear();

定义栈之后使用其将十进制转换成二进制:

function divideBy2(decNumber){

var  remStack=new Stack();

var rem;

var  binaryString='';

while(decNumber!=0){

rem=Math.floor(decNumber%2);

remStack=.push(rem);

decNumber=Math.floor(decNumber/2);

}

while(remStack.length!=0){

binaryString+=remStack.pop();

}

return jam;

}

divideBy2(255);//11111

十进制转换成任意进制:

function divideBy2(decNumber, base){

var  remStack=new Stack();

var  rem;

var binarystring='';

var  digits="0123456789ABCDEF";

while(devNumber>0){
rem=Math.floor(devNumber%base);

remStack.push(rem);

devNumber=Math.floor(devNumber/base);

}

while(!remStack.isEmpty()){

binarystring+=digits[remStack.push()];

}

return  binarystring;

}

5,队列:队列和栈的实现类似,利用数组实现对数据的操控,但是队列是先进先出。

function  queue(){

var item=[ ];

this.enqueue=function(element){
item.push(element);

}

this.dequeue=function(){
return item.shift();

}

this.font()=function(){

return item[0];

}

this.isEmpty()=function(){
return item.length==0;

}

this.size()=function(){

return item.length;

}

this.clear=function(){
item=[ ];

}

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

猜你喜欢

转载自blog.csdn.net/kalinux/article/details/81779934