(js描述的)数据结构[栈结构](2)
(js描述的)数据结构[栈结构](2)
一.什么是栈结构
1.一种受限制的线性结构,这种结构可以基于数组来实现。
2.可以抽象成一个容器,上面的是栈顶,底下的是栈底。所以仅允许对栈顶进行操作,
二.栈结构的应用
1.函数式调用栈:基于栈的形式来进行函数的整体调用。
2.递归:栈溢出就是其中的一点。
三. 栈结构常见的操作
- push(): 添加一个元素到栈顶。
 - pop(): 移除栈顶的元素。
 - peek(): 返回栈顶的元素,不对栈结构做任何的修改。
 - isEmpty(): 判断栈是否为空,不空的话返回 true, 空的话返回 false。
 - size(): 返回栈里的元素个数。
 - toString():将栈内容以字符串的方式的返回。
 
四.用代码封装栈结构
function Stack() {
        this.items = []
        this.prototype.push = function(element) {
            this.items.push(element)
        }
        this.prototype.pop = function() {
            return this.items.pop()
        }
        this.prototype.peek = function () {
            return this.items[this.items.length - 1]
        }
        this.prototype.isEmpty = function () {
            if (this.items.length === 0) {
                return false
            }
            return true
        }
        this.prototype.size = function () {
            return this.items.length
        }
        this.prototype.toString = function() {
            var str = ''
            for (var i=0; i< this.items.length; i++) {
                str += this.items[i] + ' '
            }
            return str
        }
    }
    var s = new Stack()
五.应用
十进制转二进制
function dec2bin(decNumber) {
        var binStack = new Stack()
        while (decNumber > 0) {
            binStack.push(decNumber % 2 )
            decNumber = Math.floor(decNumber / 2)
        }
        var binAryString = ''
        while (!binStack.isEmpty()) {
            binAryString += binStack.pop()
        }
        return binAryString
    }
												
											(js描述的)数据结构[栈结构](2)的更多相关文章
- (js描述的)数据结构[集合结构](6)
		
(js描述的)数据结构[集合结构](6) 一.集合结构特点 1.集合中的元素不能重复. 2.集合是无序的. 二.集合的代码实现 function Set() { this.items = {} //1 ...
 - (js描述的)数据结构[队列结构,优先级队列](3)
		
(js描述的)数据结构[队列结构](3) 一.队列结构的特点: 1.基于数组来实现,的一种受限的线性结构. 2.只允许在表头进行删除操作,在表尾进行插入操作. 3.先进先出(FIFO) 二.队列的一些 ...
 - (js描述的)数据结构[哈希表1.1](8)
		
(js描述的)数据结构[哈希表1.1](8) 一.数组的缺点 1.数组进行插入操作时,效率比较低. 2.数组基于索引去查找的操作效率非常高,基于内容去查找效率很低. 3.数组进行删除操作,效率也不高. ...
 - (js描述的)数据结构[双向链表](5)
		
(js描述的)数据结构[双向链表](5) 一.单向链表的缺点 1.只能按顺序查找,即从上一个到下一个,不能反过来. 二.双向链表的优点 1.可以双向查找 三.双向链表的缺点 1.结构较单向链表复杂. ...
 - (js描述的)数据结构[链表](4)
		
(js描述的)数据结构 [链表](4) 一.基本结构 二.想比于数组,链表的一些优点 1.内存空间不是必须连续的,可以充分利用计算机的内存,事项灵活的内存动态管理. 2.链表不必再创建时就确定大小,并 ...
 - (js描述的)数据结构[字典](7)
		
(js描述的)数据结构[字典](7) 一.字典的特点 1.字典的主要特点是一一对应关系. 2.使用字典,剋通过key取出对应的value值. 3.字典中的key是不允许重复的,而value值是可以重复 ...
 - 用JS描述的数据结构及算法表示——栈和队列(基础版)
		
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...
 - (js描述的)数据结构[树结构1.1](11)
		
1.树结构: 我们不能说树结构比其他结构都要好,因为每种数据结构都有自己特定的应用场景. 但是树确实也综合了上面的数据结构的优点(当然有点不足于盖过其他的数据结构,比如效率一般情况下没有哈希表高) 并 ...
 - (js描述的)数据结构[树结构1.2](12)
		
1.先序遍历 2.中序遍历 3.后序遍历 4.递归调用栈详解: 详细见: https://zhuanlan.zhihu.com/p/24291978 5.删除节点操作分析: 5.代码封装 //封装二叉 ...
 
随机推荐
- vue基础----组件通信($parent,$children)
			
1.按照dom的父子级关系,在子组件中可以通过$parent 直接调用父组件的方法,也可得到父组件的属性. 2.在父组件中通过$childrens可以得到一个子组件数组,能够在父组件中调用子组件的方法 ...
 - CentOS系统python默认版本由python2改为python3
			
一.了解 CentOS中如果安装有yum,一般会有python2的某个版本.命令行键入python,出现的python2的环境: [root@instance-hrnebyqu src]# pytho ...
 - javaScript 基础知识汇总(九)
			
1.Rest 参数 与 Spread 操作符 当我们在代码中遇到“..."时,它不是Rest参数就是Spread操作符 区分方法: 若...出现在函数的参数列表,那它表示的就是Rest参数, ...
 - mui switch 点击事件不冒泡
			
工作上遇到一个问题 手机移动端app,采用mui框架,要求左边是手机号码,右边是switch开关,并且点击标题的时候,可以展开下面人员的基本信息. 采用了折叠面板. 先上图如下: 开始时出现的问题是: ...
 - 150多个Flutter组件详细介绍送给你
			
迷茫是什么,迷茫就是大事干不了,小事不想干,能力配不上欲望,才华配不上梦想. 150+Flutter组件详细介绍地址:http://laomengit.com/ 前言 我在Flutter未正式发布之前 ...
 - Linux 部署Tomcat图文注解 一学就会
			
导读 安装tomcat前首先要安装对应的jdk并配置Java环境. 安装jdk,请参考:点我直达 安装Tomcat 下载Tomcat包 官网地址:点我直达 Tomcat与jdk兼容关系 注:Tomca ...
 - jenkins-gitlab-harbor-ceph基于Kubernetes的CI/CD运用(四)
			
前景提要 jenkins与gitlab结合,实现代码自动拉取:https://www.cnblogs.com/zisefeizhu/p/12548662.html jenkins与kubernetes ...
 - [Bugku]Web题解
			
bugku地址链接:https://ctf.bugku.com 1.web2 浏览器就显示一堆动态笑脸,时间长了密集恐惧症了. 解法1: F12查看源码 解法2: 地址栏输入: view-source ...
 - .net core 依赖注入, autofac 简单使用
			
综述 ASP.NET Core 支持依赖注入, 也推荐使用依赖注入. 主要作用是用来降低代码之间的耦合度. 什么是控制反转? 控制反转(Inversion of Control,缩写为IoC),是面 ...
 - Oracle 中文日期转换
			
中文日期转换 select to_char(to_date('07-5月-17'),'yyyy-MM-dd HH24:mi:ss') from dual