博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构之栈-JavaScript实现栈的功能
阅读量:6140 次
发布时间:2019-06-21

本文共 1533 字,大约阅读时间需要 5 分钟。

记录自己的学习

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

function Stack(){    this.data = [];    this.push = push;        //添一个或多个元素到栈顶    this.pop = pop;          //移除栈顶的元素,同时返回被移除的元素    this.peek = peek;        //返回被移除的元素    this.isEmpty = isEmpty;  //判断栈是否为空,空返回true,否则返回false    this.clear =clear;       //移除栈里的所有元素    this.size = size;        //返回栈内元素的个数};function push(ele){    this.data.push(ele);};function pop(){    return this.data.pop();  //利用数组的pop()方法来达到移除栈顶的元素,同时返回被移除的元素};function peek(){    return this.data[this.data.length-1]};function isEmpty(){    return this.data.length == 0;};function size(){    return this.data.length;};function clear(){    this.data = [];};var sta = new Stack();sta.push('lily');sta.push('Tom')console.log(sta.data)  //['lily', 'Tom']var peeka = sta.peek();console.log(peeka)     //Tomvar popa = sta.pop();console.log(popa)      //Tomconsole.log(sta.data)  //lily

 运用上面实现的stack,实现进制转化

//进制转换  10进制转化2进制,8进制,16进制function baseConverter(number, base){    var remStack = new Stack(),        rem,        baseString = '',        digits = '0123456789ABCDEF';    while(number > 0){        rem = number % base;        remStack.push(rem);        number = parseInt(number / base)    }    while(!remStack.isEmpty()){        baseString += digits[remStack.pop()];    }    return baseString;}var a = baseConverter(15, 16)console.log(a)  //F

 

转载于:https://www.cnblogs.com/guojikun/p/6197553.html

你可能感兴趣的文章
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
HDU 2818 (矢量并查集)
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
416. Partition Equal Subset Sum
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
Data Wrangling文摘:Non-tidy-data
查看>>
while()
查看>>
常用限制input的方法
查看>>
IIS7下使用urlrewriter.dll配置
查看>>