Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

第 60 期(数据结构-栈):栈和栈的模拟 #63

Copy link
Copy link
@wingmeng

Description

@wingmeng
Issue body actions

概念:
栈是一种线性数据结构,遵从后进先出(LIFO)原则的有序集合,一个栈可以对数据按照顺序进行组织和管理。
新添加的或是待删除的元素都保存在栈的末尾。我们称作栈顶,而另一端我们称作栈底。

理解:
我们可以把栈想象为只有一端开口的管子,我们可以往管子里塞球,塞进去的球会朝底部方向堆积,这个操作称为 入栈
当我们需要取出球时,肯定只能从开口的一侧开始取,取球的操作称为 出栈
最外侧的球是最后一个放进去的,它被先取出来,这称作 后进先出

image

栈的模拟:

class Stack {
  constructor() {
    this.item = [];
  }

  // 添加一个(或几个)新元素到栈顶
  push(element) {
    items.push(element);
  }

  // 移除栈顶的元素,同时返回被移除元素
  pop() {
    return items.pop();
  }

  // 返回栈顶元素,但不对栈做修改
  peek() {
    return items[items.length-1];
  }

  // 判断是否为空栈(没有任何元素)
  isEmpty() {
    return items.length === 0;
  }

  // 返回栈里的元素个数
  size() {
    return items.length;
  }

  // 清空栈
  clear() {
    items = [];
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.