数据结构与算法-栈

栈是一种遵从先进后出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。

而栈主要是在编程语言的编译器里用来保存变量和方法调用等。

创建栈

function Stack() {
  this.dataStore = []; //保存栈内元素
  this.top = 0; //标记可以插入新元素的位置
  this.push = push; //入栈操作
  this.pop = pop; //出栈操作
  this.peek = peek; //返回栈顶元素
  this.clear = clear; //清空栈
  this.length = length; //栈的长度
}
//向栈中压入元素 同时让指针top+1 一定注意++
function push(element) {
  this.dataStore[this.top++] = element;
}
//出栈操作 同时将top-1
function pop() {
  return this.dataStore[--this.top];
}
//返回栈顶元素,变量top值减1 返回不删除
function peek() {
  return this.dataStore[this.top - 1];
}
//返回栈内元素个数
function length() {
  return this.top;
}
//清空一个栈
function clear() {
  this.top = 0;
}

回文算法

//回文算法

function isPalindrome(word){  
  var s = new Stack();
  for(var i=0;i<word.length;i++){
    s.push(word[i]);
  }
  var rword = "";
  while(s.length()>0){
    rword+=s.pop();
  }
  if(rword == word){
    return true;
  }else{
    return false
  }
}
var word = "12321";  
console.log(isPalindrome(word)); 

作者:@lsxlsxxslxsl