栈 相关概念 栈是一种特殊的线性表 只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 原则:后进先出LIFO(Last In First Out) 压栈:栈的插入操作,入数据在栈顶 出栈:栈的删除操作,出数据也在栈顶 我们来实现自己的栈,首先用数组来 ...
分类:
其他好文 时间:
2020-06-14 11:14:49
阅读次数:
56
一、背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性。 二、概念 2.1 栈 栈[Stack]:是一种限定仅在表尾进行插入和删除操作的线性表;即后进先出(LIFO-last in first out ...
分类:
其他好文 时间:
2020-06-09 18:34:08
阅读次数:
68
栈 先进者后出,后进者先出,LIFO,典型的"栈"结构 从栈的操作特性上来看,栈是一种"操作受限"的线性表,只允许在一段插入和删除数据。 在功能上来说,数组和链表可以代替栈,但特定的数据结构是对特定场景的抽象, 数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,也就更容易出错 ...
分类:
其他好文 时间:
2020-06-07 10:47:55
阅读次数:
61
1.锁 #线程中是不是会产生数据不安全# 共享内存a = 0def add_f(): global a for i in range(200000): a += 1?def sub_f(): global a for i in range(200000): a -= 1?from threading ...
分类:
其他好文 时间:
2020-06-03 18:49:10
阅读次数:
49
1057 Stack (30分) Stack is one of the most fundamental data structures, which is based on the principle of Last In First Out (LIFO). The basic operatio ...
分类:
其他好文 时间:
2020-06-03 00:45:45
阅读次数:
80
1 """ 2 线程通信的生产者与消费者 3 python的queue模块中提供了同步的线程安全的队列类,都具有原子性,实现线程间的同步 4 Queue (FIFO: fist in fist out) 5 LifoQueue (LIFO: last in fist out) 6 PriorityQ ...
分类:
编程语言 时间:
2020-05-31 11:24:17
阅读次数:
67
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入、文件读写和网络收发数 ...
分类:
编程语言 时间:
2020-05-19 16:21:20
阅读次数:
62
A white kid sells a bag of cocaine at his suburban high school. A Latino kid does the same in his innercity neighborhood . Both get caught. Both are f ...
分类:
其他好文 时间:
2020-05-12 20:23:50
阅读次数:
63
栈 栈(Stack)是一个后进先出(LIFO)的数据结构,直接上图 简单来说栈只有两种操作,出栈和入栈,直接来看一下java.util.Stack里面的实现。 Stack继承自Vector一个线程安全的容器(动态数组) 入栈操作,调用了Vector的addElement函数,向动态数组末尾添加一个元 ...
分类:
其他好文 时间:
2020-05-02 21:17:06
阅读次数:
81
分析 使用两个栈,一个主(s1),一个辅(s2) 我们并不需要真正实现类似队列的结构,只需要实现队列的功能即可: push:直接push到s1即可,这时和队列的性质相反(FIFO vs. LIFO) pop:目标是拿到队头,即栈底,只需要把除栈底外的元素移动到辅助栈s2,然后弹出栈底,最后把s2元素 ...
分类:
其他好文 时间:
2020-04-27 19:11:49
阅读次数:
59