美文网首页数据结构
数据结构题目32:顺序堆栈操作

数据结构题目32:顺序堆栈操作

作者: 玲儿珑 | 来源:发表于2020-05-06 19:19 被阅读0次
  1. 初始化一个堆栈
var M = 20
function initials() {
    var stackObj = {
        stack : new Array(M),
        top : -1
    }
    return stackObj
}
  1. 测试堆栈是否为空
function emptys(top) {
    return top == -1
}
  1. 测试堆栈是否已满
function fulls(top) {
    return top == M-1
}
  1. 取当前栈顶元素
    将当前栈顶元素取出赋值变量返回。此操作不改变栈顶指针的位置。
function getTops(stackObj) {
    if (emptys(stackObj.top)) {
        return 0
    } else {
        return stackObj.stack[stackObj.top]
    }
}
  1. 插入(进栈)
    此算法在容量为M的堆栈中插入一个新的元素item,栈顶元素的位置由top指出。
function push(stackObj, item) {
    if (fulls(stackObj.top)) {
        return 0
    } else {
        stackObj.stack[++stackObj.top] = item
        return stackObj
        // return 1
    }
}
  1. 删除(退栈)
    此算法从堆栈中退出当前栈顶元素,并保存在变量item中返回,同时修改栈顶指针的位置。
    有必要说明一下,所谓删除,只是将栈顶指针“下退”一个位置,原来的栈顶元素就被认为不包括在堆栈中了(实际山该元素还占据原来的位置,当有新的数据元素进栈时就会将其“冲掉”)。
function pop(stackObj) {
    if (emptys(stackObj.top)) {
        return 0
    } else {
        let item = stackObj.stack[stackObj.top--]
        return item
        // return 1
    }
}

测试:

//初始化堆栈
var stackObj = initials()
console.log(stackObj)
//填充堆栈
push(stackObj, 1)
push(stackObj, 2)
push(stackObj, 3)
push(stackObj, 4)
push(stackObj, 5)
//删除堆栈
pop(stackObj)
//取出栈顶元素
getTops(stackObj)

相关文章

  • 数据结构题目32:顺序堆栈操作

    初始化一个堆栈 测试堆栈是否为空 测试堆栈是否已满 取当前栈顶元素将当前栈顶元素取出赋值变量返回。此操作不改变栈顶...

  • 汇编开发(三):程序

    1. 堆栈操作 1). 运行时栈 PUSH 操作 作用:32位PUSH操作将堆栈指针递减4并将值复制到该位置堆栈指...

  • 数据结构题目33:链接堆栈的操作

    测试:

  • 常见数据结构和算法

    常见数据结构 线性数据结构(按顺序具有数据元素的数据结构):数组,堆栈,链表(单链表 双链表),队列非线性数据结...

  • 堆和栈基本知识

    一、定义 堆栈是不同的两种数据结构,堆:队列优先,先进先出。栈,先进后出。 堆栈空间分配 栈(操作系统):由操作系...

  • 数据结构题目34:顺序队列的操作

    顺序队列的操作有以下基本操作: 初始化一个队列 测试队列是否为空 取当前队头元素 队列的插入(进队) 队列的删除(...

  • 值拷贝和对象引用

    栈数据结构:先进后出,后进先出 堆数据结构:数据没有固定顺序,在堆操作在堆操作数据可以任何顺序操作 实例: 1.基...

  • 1. 数据结构与算法:堆栈

    堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行。 S...

  • tolua笔记

    LuaState●LuaState封装了对lua 主要数据结构 lua_State 指针的各种堆栈操作。●一般对于...

  • 堆栈

    一、堆栈的概念 在计算机领域中,堆栈是两种数据结构。 堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的...

网友评论

    本文标题:数据结构题目32:顺序堆栈操作

    本文链接:https://www.haomeiwen.com/subject/zxhgghtx.html