数据结构之栈用JavaScript来实现
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./zhan.js"></script>
</head>
<body>
算法数据结构
<br>
//栈的概念 结构 操作
<br>
//操作实现 十进制转2进制
<br>
//一种后进先出的数据结构
<br>
//入栈 栈底 栈顶 出栈
<br>
push()入栈
<br>
pop()出栈
<br>
peek()检查栈顶的元素
<br>
isEmpty() 是否为空
<br>
clear() 清空栈
<br>
size() 栈元素的个数
<br>
js实现栈结构--数组
<br>
[0,1,2,3,4]
<br>
--->push(5)-->[0,1,2,3,4,5]-->pop()-->5
<br>
</body>
</html>
js代码
//函数 :作为一个函数 构造器
//this指向要创建的
var Stack = function () {
var items = []
// this.items = []
//push添加元素
this.push = function (element) {
items.push(element)
// var arr =[1,2,3,4]
}
//pop 移除栈顶元素
this.pop = function () {
items.pop()
}
//查看栈顶元素 peek
this.peek = function () {
return items[items.length - 1]
}
//检查栈是否为空
this.isEmpty = function () {
return items.length == 0
}
//清除栈
this.clear = function () {
items = []
}
//获取栈的大小
this.size = function () {
return items.length
}
//检查items
this.getItems = function () {
return items
}
}
//实例 十进制转二进制
//余数法
// 十除于二
var divBy2 = function (e) {
var stack = new Stack()
var yushu
var string2 = ''
while (e > 0) {
yushu = e % 2
stack.push(yushu)
e = Math.floor(e / 2)
}
console.log(stack)
while (stack.isEmpty() == false) {
string2 += stack.pop()
}
return string2
}
//站作用 在编程语言的编译器和内存中保存变量,方法调用
// 先完成fun1 ,在完成fun2
var fun1 = function(){
return console.log('fun1 finish')
}
var fun2 = function(){
fun1()
return console.log('fun2 finish')
}
fun2()
//递归
var app = function(){
app()
}