记录学习内容。
以下内容和截图大多引用文章。
还不了解,内容可能有错误。
Queue 可以用 Stack 制作 。
Stack 也可以用 Queue 制作 。
Queue 的 enQueue 相当於 Stack 的 push 。放东西进去 。
Queue 的 deQueue 相当於 Stack 的 pop 。把东西拿出 。
先来看 ,用 Stack 制作 Queue :
https://www.geeksforgeeks.org/queue-using-stacks/
一个stack 叫s1 , 另一个stack叫 s2 。
enQueue 代表 放东西 。
enQueue 里的写法 :
如果 s1 不是空的 ,s2就会push (s1的pop)
像是s1 现在是1(stack的top) 2 3 4 5(5代表最後放,在stack的最底端) 。
会变成
s2 : 5(stack的top) 4 3 2 1
s1:空的
之後 s1.push(x) ,s1: 6 (新增的数字)
如果s2不是空的 ,就
s1.push(s2.pop());
s1 会变成 1(stack的top) 2 3 4 5 6
看程序,主要是写在enQueue 。
简单想就是 把s1倒到s2 -- >s1.push -->再把s2倒回来。
时间复杂度 :
Push operation: O(N).
把s1 倒 到 s2 ,再把s2 倒回来 。大概2n ?
Pop operation: O(1).
直接从s1顶端 pop
程序写在deQueue(取东西)里
这个想法比较简单 ,如果s1是5(stack的top,最後放) 4 3 2 1 。
s1 倒到 s2 ,s2会变成1(stack的top ) 2 3 4 5
这样s2 pop 的时候 ,就是答案了
也可以只用一个stack的制作 。
不断把s1 pop ,return 最後一项 ,不是最後一项的,在一个一个放回s1。用递回。
今天我们要介绍的是python的Pandas,所谓的Pandas就是python里面的其中一个套件。...
昨天我们使用这两个 struct 来代表整个游戏的状态,那我们今天就实际的来定义他们 在开始之前 在...
二、特性 匿名函数 (没有名字的函数) package main import ( "fm...
处理overfitting的时候:把train data 分析的太细了,训练过头了,这个可以通过ea...
前两天教的好多好多种运算子,这些都是很常会用到的,一定要记好!!什麽?你忘记了!?这怎麽行,给你连结...