概述 Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,成为各种虚拟机执行引擎的统一外观(Facade)。不同的虚拟机引擎会包含两种执行模式,解释执行和编译执行。 运行时帧栈结构 栈帧(Stack Frame)支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(V ...
分类:
编程语言 时间:
2019-12-22 17:59:47
阅读次数:
91
1,堆栈结构 后进先出的队列 栈结构:其实就是一个后进先出的一个线性表,只能在栈顶压入或弹出元素 如何用列表实现栈 2,队列 队列,类似于栈 队列,其实就是一个先进先出的线性表,只能在队首执行删除操作,在队尾执行插入操作,用列表表示队列,可以用append()方法实现队尾插入元素,用pop(0)方法 ...
分类:
其他好文 时间:
2019-12-13 13:36:45
阅读次数:
81
递归 递归调用 一个函数,调用了自身,称为递归调用 递归函数:一个会调用自身的函数称为递归函数 凡是循环能干的事,递归都能干 方式: 写出临界条件 找这一次和上一次的关系 假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果 栈和队列 栈 存取数据的特点: 先进后出 模拟栈结构 stac ...
分类:
其他好文 时间:
2019-12-07 12:12:43
阅读次数:
93
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 # -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack = [] self.minstack = [] ...
分类:
编程语言 时间:
2019-12-06 11:51:33
阅读次数:
67
队列结构 受限的线性结构 之前我们总结了:栈结构 并且已经知道这种 受限的数据结构 对于解决某些 特定的问题 ,会有 特别的效果 这面文章,介绍了另外一个受限的数据结构: 队列 队列的结构: 满足 先进先出 的一种结构 受限之处:只允许在表的前端进行删除操作,表的后端进行插入操作 抽象比喻: 栈就是 ...
分类:
编程语言 时间:
2019-11-21 23:18:22
阅读次数:
152
栈的特色:后进先出,先进后出。 说明:本文仅做了最基本的栈结构和简单出入栈操作,理解栈的特点为首要目的。 一、栈结构的定义 #include <stdio.h> /*栈的数据结构和出栈入栈*/ /*@author Funky_天晴了*/ /*@date 2019.11.11 */ //定义出错常量 ...
分类:
其他好文 时间:
2019-11-11 15:36:26
阅读次数:
73
栈 栈模型 栈(stack)是限制对元素的插入(push)和删除(pop)只能在一个位置上进行的表,该位置是表的末端,叫做栈的栈顶(top)。 栈的基本操作只有两种,压入栈(push)和弹出栈顶(pop),且只能作用于栈顶。(只有栈顶元素是可访问的 你可以把栈结构理解成一个底部封闭,顶部打开的桶。最 ...
分类:
其他好文 时间:
2019-10-31 13:53:02
阅读次数:
101
方法调用栈结构: 每个线程都有自己独立的方法调用栈: 这种局部变量不共享,从而保证线程安全的技术,称为线程封闭技术。 案例:数据库连接池。采用线程封闭技术,线程获取的数据库连接connection,是独立的,在这个线程在关闭获取的这个connection之前,不会再分配给其他线程。 思考:递归调用太 ...
分类:
编程语言 时间:
2019-10-22 12:40:37
阅读次数:
109
题目 找出数组中每个数右边第一个比它大的元素。 思路 1. 暴力解法 2. 单调栈 使用栈结构。从前往后遍历数组每一位时,利用栈更新这一位之前每一位上的数的“右边第一个比它大的元素”。 代码 参考 https://blog.csdn.net/smileiam/article/details/8873 ...
分类:
编程语言 时间:
2019-10-21 22:15:59
阅读次数:
195
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 解题思路 要求在O(1)时间内完成,由于栈后进先出的原则,不能出现破坏栈结构的事情。因而采用以空间换时间的思路,建立辅助栈,辅助栈与数据栈的出入栈操作同步进行,区别在于数据栈压入当前元素 ...
分类:
其他好文 时间:
2019-10-05 12:53:17
阅读次数:
115