JavaScript中的栈及通过栈操作的实例
<script>
/*栈操作*/
function Stack() {
this.dataStore = [];
this.top = 0; this.push = push;
this.pop = pop;
this.peek = peek;
this.clear = clear;
this.length = length;
} function push(ele) {
this.dataStore[this.top ++] = ele;
} function peek() {
return this.dataStore[this.top - 1];
} function pop() {
return this.dataStore[-- this.top];
} function clear() {
this.top = 0;
} function length() {
return this.top;
} var s = new Stack();
s.push('Han');
s.push('hansome');
s.push('zhang');
console.log(s.length());//3
console.log(s.peek());//zhang
console.log(s.pop());//zhang
console.log(s.length());//2
console.log(s.clear());//undefined
console.log(s.length());//0 // 1.数制之间的相互转换
function mulBase(num, base) {
var s = new Stack();
do {
s.push(num % base);
num = Math.floor(num /= base);
} while (num > 0);
var converted = "";
while(s.length() > 0) {
converted += s.pop();
}
return converted;
}
var num = 32;
var base = 2;
console.log(mulBase(num, base));//100000
// 2.判断字符串是否是回文
function isPalindrome(word) {
var s = new Stack();
for (var i = 0; i < word.length; i++) {
s.push(word[i]);
}
var rword = "";
while(s.length() > 0) {
rword += s.pop();
}
if (word == rword) {
return "是回文!";
}else {
return "不是回文!";
}
}
console.log(isPalindrome("helccleh"));//是回文
console.log(isPalindrome('abc'));//不是回文
// 3.使用栈来模拟递归过程
function fact(n) {
var s = new Stack();
while(n > 1) {
s.push(n --);
}
var product = 1;
while (s.length() > 0) {
product *= s.pop();
}
return product;
}
console.log(fact(6));//720
</script>
JavaScript中的栈及通过栈操作的实例的更多相关文章
- 使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序
		
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 window 对象执行计时操作,完成一个抽奖程序 实现思路: 在 HTML 页面中放置背景图片.转盘和指针 3 张图片,并设置指 ...
 - JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念
		
JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html> <body> <script type="t ...
 - JavaScript中的算法之美——栈、队列、表
		
序 最近花了比较多的时间来学习前端的知识,在这个期间也看到了很多的优秀的文章,其中Aaron可能在这个算法方面算是我的启蒙,在此衷心感谢Aaron的付出和奉献,同时自己也会坚定的走前人这种无私奉献的分 ...
 - javaScript中利用ActiveXObject来创建FileSystemObject操作文件
		
注:如果用javascript读本地文件,遇到安全问题. 需在浏览器中进行设置,如下: 工具—> Internet选项->安全->自定义级别->启用“没有标识为安全的A ...
 - JavaScript中使用JSON,即JS操作JSON总结
		
JSON(JavaScript Object Notation 对象标记) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生 ...
 - JavaScript中的不同逻辑算法结合操作解决实际多重问题以及常用函数类型
		
数组去重+快速排序 //老数组var arr1 = [1,2,2,3,8,6,6,4,5,5];//定义新数组var arr2 = [ ];内部可运用布尔型进行判断数组的唯一性 for(i=0;i&l ...
 - javascript中的装箱和拆箱操作
		
1,装箱: 把基本数据类型转换为对应的引用类型的操作称为装箱,把引用类型转换为基本的数据类型称为拆箱. 在<javascript高级程序设计>中有这样一句话: 每当读取一个基本类型的时候, ...
 - Javascript 中的一些关于时间的操作【转】
		
1.时间对象和一些简单操作函数 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...
 - JavaScript中ActiveXObject操作本地文件夹
		
在Windows平台上, js可以调用很多Windows提供的ActivexObject,本文就使用js来实现文档处理, 和使用js编写ActiveX做一个简单介绍. <!DOCTYPE HTM ...
 - JavaScript中使用ActiveXObject操作本地文件夹的方法
		
转载地址 http://www.jb51.net/article/48538.htm 在Windows平台上, js可以调用很多Windows提供的ActivexObject,本文就使用js来实 ...
 
随机推荐
- STM32采集电阻触摸贴膜
			
今天为了解决一个测量电阻屏压力的问题,自己直接用STM32做了一个测量电阻屏的程序(直接把触摸屏的四根线接到单片机引脚上),通过AD切换采集,采集X轴电压,Y轴电压,和压力..最后附上自己的程序 先说 ...
 - 主java程序猿知识体系结构
			
zuoxiaolong博客园<浅谈程序猿书箱的选择,你会如何选择自己的爱书呢>一文,链接如下:http://www.cnblogs.com/zuoxiaolong/p/life19.htm ...
 - 关于Python编码,超诡异的,我也是醉了
			
Python的编码问题,真是让人醉了.最近碰到的问题还真不少.比如中文文件名.csv .python对外呈现不一致啊,感觉好不公平. 没图说个JB,下面立马上图. 我早些时候的其他脚本,csv都是 ...
 - Vue之Vuex
			
一.什么是vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.简单来说就是一个数据统一 ...
 - (中级篇 NettyNIO编解码开发)第七章-java序列化
			
相信大多数Java程序员接触到的第一种序列化或者编解码技术就是.Java的默认序列化,只需要序列化的POJO对象实现java.io.Serializable接口,根据实际情况生成序列ID,这个类就能够 ...
 - Python爬虫02——贴吧图片爬虫V2.0
			
Python小爬虫——贴吧图片爬虫V2.0 贴吧图片爬虫进阶:在上次的第一个小爬虫过后,用了几次发现每爬一个帖子,都要自己手动输入帖子链接,WTF这程序简直反人类!不行了不行了得改进改进. 思路: 贴 ...
 - glmnetUtils: quality of life enhancements for elastic net regression with glmnet
			
The glmnetUtils package provides a collection of tools to streamline the process of fitting elastic ...
 - 对 Servlet 的改进--------Struts2 引入
			
通过上一篇博客:Servlet 的详解 http://www.cnblogs.com/ysocean/p/6912191.html,我们大致知道了 Servlet 的基本用法.但是稍微分析一下 Ser ...
 - 7.ReadWriteLock接口及其实现ReentrantReadWriteLock
			
Java并发包的locks包里的锁基本上已经介绍得差不多了,ReentrantLock重入锁是个关键,在清楚的了解了同步器AQS的运行机制后,实际上再分析这些锁就会显得容易得多,这章节主讲另外一个重要 ...
 - SQL Server AG集群启动不起来的临时自救大招
			
SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...