javascript 栈 Stack

简介: 栈是只允许在表尾进行插入,删除的线性表。特点后进先出。 下面将演示用数组实现的栈 栈初始化:创建一个空栈 Init:function(){ this.STACKMAX = 100; this.

栈是只允许在表尾进行插入,删除的线性表。特点后进先出。

下面将演示用数组实现的栈

栈初始化:创建一个空栈

Init:function(){
   this.STACKMAX = 100;
   this.stack = new Array(this.STACKMACK);
   this.top = -1;
   return this.stack;
}

 

判断栈空: 若栈为空返回true,否则返回false

Empty:function(){
   if(this.top==-1){
       return true;
   }
   else{
        return false;
   }
}

 

进栈:若栈满,返回“栈满”。否则将元素elem作为新的栈顶元素。

Push:function(elem){
   if(this.top==this.STACKMAX-1){
      return "栈满";
   }
   else{
      this.top++;
      this.stack[this.top] = elem;
   }
 }

 

退栈:删除栈顶元素,并返回其值

Pop:function(){
    if(this.top==-1){
        return "空栈,无法删除栈顶元素!";
    }
    else{
        var x = this.stack[this.top];
        this.top--;
        return x;
    }
 }

 

读栈顶元素:返回栈顶元素

Top:function(){
    if(this.top!=-1){
        return this.stack[this.top];
    }
    else{
        return "空栈,顶元素无返回值!";
     }
 }

 

清空栈:将栈清空为空栈

Clear:function(){
    this.top=-1;
}

 

栈长度:返回栈的元素个数,既栈的长度

Length:function(){
   return this.top+1;
}


栈示例代码如下:

            var Stack = function(){}
            
            Stack.prototype={
                Init:function(){
                    this.STACKMAX = 100;
                    this.stack = new Array(this.STACKMACK);
                    this.top = -1;
                    return this.stack;
                },
                Empty:function(){
                    if(this.top==-1){
                        return true;
                    }
                    else{
                        return false;
                    }
                },
                Push:function(elem){
                    if(this.top==this.STACKMAX-1){
                        return "栈满";
                    }
                    else{
                        this.top++;
                        this.stack[this.top] = elem;
                    }
                },
                Pop:function(){
                    if(this.top==-1){
                        return "空栈,无法删除栈顶元素!";
                    }
                    else{
                        var x = this.stack[this.top];
                        this.top--;
                        return x;
                    }
                },
                Top:function(){
                    if(this.top!=-1){
                        return this.stack[this.top];
                    }
                    else{
                        return "空栈,顶元素无返回值!";
                    }
                },
                Clear:function(){
                    this.top=-1;
                },
                Length:function(){
                    return this.top+1;
                }
            }

 

在最近的日子里会给出栈的应用的例子,在此敬请期待。。。

目录
相关文章
|
3月前
|
Web App开发 前端开发 JavaScript
JavaScript Web Full Stack 全栈开发者路线及内容推荐
本文详细介绍了一条全面的JavaScript全栈开发者学习路径,涵盖基础知识、前端和后端开发、数据库与API、MERN Stack与React Native、工程化与部署、安全与测试、未来趋势等方面。推荐了HTML5、CSS3、JavaScript(ES6+)、Node.js、React.js、Vue.js、Svelte、Tailwind CSS、Web Components等关键技术,并提供了丰富的书籍、博主和在线资源。此外,还回顾了JavaScript的历史,并推荐了多个活跃的社区和平台,帮助开发者紧跟技术前沿。
|
6月前
|
JavaScript
数据结构(用 JS 实现栈和队列【三种方式】)
数据结构(用 JS 实现栈和队列【三种方式】)
75 0
|
6月前
|
存储 JavaScript 前端开发
javascript的栈内存 VS 堆内存(浅拷贝 VS 深拷贝)
javascript的栈内存 VS 堆内存(浅拷贝 VS 深拷贝)
34 0
|
8月前
|
存储 前端开发 JavaScript
【Web 前端】JS中的栈和堆是什么?优缺点?
【4月更文挑战第22天】【Web 前端】JS中的栈和堆是什么?优缺点?
|
设计模式 JavaScript 前端开发
JavaScript的栈结构
想要代码更优雅,数据结构,设计模式跑不掉,今天走进栈结构!
111 0
JavaScript的栈结构
|
8月前
|
前端开发 JavaScript 算法
JavaScript 中实现常见数据结构:栈、队列与树
JavaScript 中实现常见数据结构:栈、队列与树
|
JavaScript 前端开发
数据结构之栈-JavaScript实现栈的功能
数据结构之栈-JavaScript实现栈的功能
42 0
|
8月前
|
JavaScript 前端开发
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
|
存储 算法 JavaScript
JavaScript 中的数据结构与算法:数组、链表、栈、队列等
在JavaScript中,数据结构和算法是非常重要的主题,它们用于有效地组织和处理数据。下面介绍几种常见的数据结构和算法:
|
8月前
|
消息中间件 算法 JavaScript
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
78 0