栈数据结构

栈 和 堆

栈是后进先出 比如图书馆放书, 橱柜里的碗

堆是先进先服务  比如排队购物买东西

栈是一种遵从后进先出( LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。在现实生活中也能发现很多栈的例子。例如,下图里的一摞书或者餐厅里堆放的盘子, 栈也被用在编程语言的编译器和内存中保存变量、方法调用等。

创建栈

function Stack() {

 let items = [];

// 向栈添加元素

this.push = function(element){
  items.push(element);
};

 this.pop = function(){
return items.pop();
};
}

let stack = new Stack();

stack.push(5);

ES6语法创建栈

class Stack {
constructor () {
this.items = []; //{1}
}
push(element){
this.items.push(element);
}
//其他方法
}

用栈解决问题
栈的实际应用非常广泛。在回溯问题中,它可以存储访问过的任务或路径、撤销的操作。 Java和C#用栈来存储变量和方
法调用,特别是处理递归算法时,有可能抛出一个栈溢出异常。

猜你喜欢

转载自www.cnblogs.com/zhaofeis/p/10621630.html