js棧 Stack類和佇列Queue類

2021-08-24 20:39:41 字數 2404 閱讀 1213

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() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。

棧(Stack)和佇列(Queue)

棧和佇列是兩種重要的線性結構。從資料結構角度看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,它們是操作受限的線性表,因 此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向 的程式設...

棧stack 和 佇列queue

stl中,sort的預設排序為less,也就是說從小到大排序 priority queue預設是less,也就說大頂堆 map預設是less,也就說用迭代器迭代的時候預設是小的排在前面 set預設是less,也就是說用迭代器迭代的時候是從小到大排序的。棧和佇列的區別是啥?吃多了拉就是佇列,吃多了吐就...

棧(stack)和佇列(queue)

棧的定義 特點 filo 是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為棧頂 top 棧頂由乙個稱為棧頂指標的位置指示器 對於順序棧,就是記錄棧頂元素所在陣列位置標號的乙個整型變數 對於鏈式棧,就是記錄棧頂元素所在結點位址的指標 來指示,它是動態變化的。表的另一端稱...