第四章 栈
来源:互联网 发布:淘宝加盟要多少钱 编辑:程序博客网 时间:2024/06/18 00:35
列表:
以表格为容器,装载着文字和图表的一种形式叫做列表。
数据结构中列表一般是指线性列表,是一种数据项构成的有序序列,即按照一定的线性顺序,排列而成的数据集合,一般操作有:插入,查找和删除。
栈:
栈是和列表一样的数据结构,栈是一种高效的数据结构,因为数据只能在栈顶删除或者添加,所以这样操作很快。
栈是一种特殊的列表,栈内的元素只能通过列表一端访问,这一段成为栈顶。栈被称作一种后入先出的数据结构。
对栈的两种主要操作:
- 入栈使用push()方法
- 出栈使用pop()方法 //可以返回栈顶的元素,但是栈顶的元素将会永久的删除。可以使用peek().只返回栈顶元素但不删除。
clear()方法清除站内的所有元素,length返回栈的长度。empty()方法表示栈内是否有元素。
栈的实现:
首先先定义一个类的构造函数来实现。
function Stack(){ this.dataStore=[]; this.top=0; this.push=push; this.pop=pop; this.peek=peek; this.length=length }
构建一些常用的方法:
function push(ele){ this.dataStore[this.top++]=ele; } function pop(){ return this.dataStore[--this.top] } function peek(){ return this.dataStore[this.top-1] } function length(){ return this.top; } function clear(){ this.top=0; }
I++和++I的区别:
i++:先赋值在++
a=i++等同于a=i;i++
相反++i:先++在赋值
a=++i等同于i++,a=i
for(var i=0;i<=10;i++){ a=++j; console.log(a,j); }//0 11 22 33 44 55 66 77 88 99 1010 11
var j=0; for(var i=0;i<=10;i++){ a=++j; console.log(a,j); }//1 12 23 34 45 56 67 78 89 910 1011 11
使用stack类:
1.数制间的相互转换
2.回文(一个单词,短语,数字)从前往后和从后往前写都是一样的
function ishuiwen(string){ var s=new Stack(); var i=0; while(i<string.length){ s.push(string[i]); i++ } var _string=""; while(s.length()>0){ _string+=s.pop() } if(string==_string){ console.log('is a huiwenshu') } else{ console.log('is not a huiwenshu') } } ishuiwen('dad')
3.递归演示
求5的阶乘:
function jc(n){ if(n==0){ return 1; } else{ return n*jc(n-1); } }
使用栈的写法:
function jc(n){ var s=new Stack(); while(n>1){ s.push(n--) } var num=1; while(s.length()>0){ num*= s.pop() } return num; } console.log(jc(5))
0 0
- 第四章:javascript: 栈
- 第四章 栈
- 第四章 栈
- 第四章(栈)
- 第四章第四题
- 第四章第四题
- 第四章 栈与队列
- 第四章 栈与队列
- 第四章 栈和队列
- 第四章 栈与队列
- 第四章 栈与队列
- 第四章 栈和队列
- 第四章 ALDS1_3_A:Stack 栈
- 第四章
- 第四章
- 第四章
- 第四章
- 第四章
- 学习网站
- 技术-Java程序调用外部程序获取输出
- LeetCode (28)Implement strStr()
- 第九周OJ-Q16解题方法
- cocos2dx-lua基础内容之 坐标系的转换
- 第四章 栈
- 【STM32烧写方法二】RS232-TTL(用于有些芯片的JTAG和SWD端口被禁止烧写的解决)
- 定时任务 Handler vs Timer
- 在ROS中使用USB网络摄像头传输图像
- 简易电话簿实现一(静态)
- Android 横向条形统计图
- 自定义进度条渐变色进度条
- 516. Longest Palindromic Subsequence
- Spring 配置 hbase