Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GreyZeng
algorithm
提交
026c6637
A
algorithm
项目概览
GreyZeng
/
algorithm
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
026c6637
编写于
1月 23, 2024
作者:
GreyZeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update code
上级
56f7ca38
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
81 addition
and
74 deletion
+81
-74
src/main/java/git/snippet/queueandstack/Code_DoubleEndsListToStackAndQueue.java
...pet/queueandstack/Code_DoubleEndsListToStackAndQueue.java
+0
-58
src/main/java/git/snippet/queueandstack/LeetCode_0155_MinStack.java
...ava/git/snippet/queueandstack/LeetCode_0155_MinStack.java
+10
-16
src/test/java/git/snippet/common/Generator.java
src/test/java/git/snippet/common/Generator.java
+13
-0
src/test/java/git/snippet/queueandstack/Code_DoubleEndsListToStackAndQueueTest.java
...queueandstack/Code_DoubleEndsListToStackAndQueueTest.java
+58
-0
未找到文件。
src/main/java/git/snippet/queueandstack/Code_DoubleEndsListToStackAndQueue.java
浏览文件 @
026c6637
package
git.snippet.queueandstack
;
import
java.util.LinkedList
;
import
java.util.Queue
;
import
java.util.Stack
;
// 用双链表实现栈和队列
// @see LeetCode_0641_DesignCircularDeque
// notes: https://www.cnblogs.com/greyzeng/p/16631644.html
public
class
Code_DoubleEndsListToStackAndQueue
{
public
static
boolean
isEqual
(
Integer
o1
,
Integer
o2
)
{
if
(
o1
==
null
&&
o2
!=
null
)
{
return
false
;
}
if
(
o1
!=
null
&&
o2
==
null
)
{
return
false
;
}
if
(
o1
==
null
)
{
return
true
;
}
return
o1
.
equals
(
o2
);
}
public
static
void
main
(
String
[]
args
)
{
int
oneTestDataNum
=
100
;
int
value
=
10000
;
int
testTimes
=
100000
;
for
(
int
i
=
0
;
i
<
testTimes
;
i
++)
{
MyStack
<
Integer
>
myStack
=
new
MyStack
<>();
MyQueue
<
Integer
>
myQueue
=
new
MyQueue
<>();
Stack
<
Integer
>
stack
=
new
Stack
<>();
Queue
<
Integer
>
queue
=
new
LinkedList
<>();
for
(
int
j
=
0
;
j
<
oneTestDataNum
;
j
++)
{
int
nums
=
(
int
)
(
Math
.
random
()
*
value
);
if
(
stack
.
isEmpty
())
{
myStack
.
push
(
nums
);
stack
.
push
(
nums
);
}
else
{
if
(
Math
.
random
()
<
0.5
)
{
myStack
.
push
(
nums
);
stack
.
push
(
nums
);
}
else
{
if
(!
isEqual
(
myStack
.
pop
(),
stack
.
pop
()))
{
System
.
out
.
println
(
"oops!"
);
}
}
}
int
numq
=
(
int
)
(
Math
.
random
()
*
value
);
if
(
queue
.
isEmpty
())
{
myQueue
.
push
(
numq
);
queue
.
offer
(
numq
);
}
else
{
if
(
Math
.
random
()
<
0.5
)
{
myQueue
.
push
(
numq
);
queue
.
offer
(
numq
);
}
else
{
if
(!
isEqual
(
myQueue
.
poll
(),
queue
.
poll
()))
{
System
.
out
.
println
(
"oops!"
);
}
}
}
}
}
System
.
out
.
println
(
"finish!"
);
}
public
static
class
Node
<
T
>
{
public
T
value
;
...
...
src/main/java/git/snippet/queueandstack/LeetCode_0155_MinStack.java
浏览文件 @
026c6637
...
...
@@ -11,37 +11,31 @@ public class LeetCode_0155_MinStack {
System
.
out
.
println
(
Long
.
toBinaryString
(
offset
));
}
static
class
MinStack
{
class
MinStack
{
Stack
<
Integer
>
stack
;
Stack
<
Integer
>
minStack
;
Stack
<
Integer
>
valStack
;
public
MinStack
()
{
stack
=
new
Stack
<>();
minStack
=
new
Stack
<>();
valStack
=
new
Stack
<>();
}
public
void
push
(
int
val
)
{
valStack
.
push
(
val
);
if
(!
minStack
.
isEmpty
())
{
if
(
minStack
.
peek
()
<
val
)
{
minStack
.
push
(
minStack
.
peek
());
}
else
{
minStack
.
push
(
val
);
}
}
else
{
stack
.
push
(
val
);
if
(
minStack
.
isEmpty
()
||
minStack
.
peek
()
>
val
)
{
minStack
.
push
(
val
);
}
else
{
minStack
.
push
(
minStack
.
peek
());
}
}
public
void
pop
()
{
if
(!
valStack
.
isEmpty
())
{
valStack
.
pop
();
minStack
.
pop
();
}
minStack
.
pop
();
stack
.
pop
();
}
public
int
top
()
{
return
valS
tack
.
peek
();
return
s
tack
.
peek
();
}
public
int
getMin
()
{
...
...
src/test/java/git/snippet/common/Generator.java
浏览文件 @
026c6637
...
...
@@ -22,4 +22,17 @@ public class Generator {
System
.
arraycopy
(
arr1
,
0
,
arr2
,
0
,
arr1
.
length
);
return
arr2
;
}
public
static
boolean
isEqual
(
Integer
o1
,
Integer
o2
)
{
if
(
o1
==
null
&&
o2
!=
null
)
{
return
false
;
}
if
(
o1
!=
null
&&
o2
==
null
)
{
return
false
;
}
if
(
o1
==
null
)
{
return
true
;
}
return
o1
.
equals
(
o2
);
}
}
src/test/java/git/snippet/queueandstack/Code_DoubleEndsListToStackAndQueueTest.java
0 → 100644
浏览文件 @
026c6637
package
git.snippet.queueandstack
;
import
org.junit.jupiter.api.Assertions
;
import
org.junit.jupiter.api.DisplayName
;
import
org.junit.jupiter.api.Test
;
import
java.util.LinkedList
;
import
java.util.Queue
;
import
java.util.Stack
;
import
static
git
.
snippet
.
common
.
Generator
.
isEqual
;
@DisplayName
(
"用双链表实现栈和队列"
)
public
class
Code_DoubleEndsListToStackAndQueueTest
{
@Test
@DisplayName
(
"用双链表实现栈和队列"
)
public
void
testInAndOut
()
{
int
oneTestDataNum
=
100
;
int
value
=
10000
;
int
testTimes
=
100000
;
for
(
int
i
=
0
;
i
<
testTimes
;
i
++)
{
Code_DoubleEndsListToStackAndQueue
.
MyStack
<
Integer
>
myStack
=
new
Code_DoubleEndsListToStackAndQueue
.
MyStack
<>();
Code_DoubleEndsListToStackAndQueue
.
MyQueue
<
Integer
>
myQueue
=
new
Code_DoubleEndsListToStackAndQueue
.
MyQueue
<>();
Stack
<
Integer
>
stack
=
new
Stack
<>();
Queue
<
Integer
>
queue
=
new
LinkedList
<>();
for
(
int
j
=
0
;
j
<
oneTestDataNum
;
j
++)
{
int
nums
=
(
int
)
(
Math
.
random
()
*
value
);
if
(
stack
.
isEmpty
())
{
myStack
.
push
(
nums
);
stack
.
push
(
nums
);
}
else
{
if
(
Math
.
random
()
<
0.5
)
{
myStack
.
push
(
nums
);
stack
.
push
(
nums
);
}
else
{
if
(!
isEqual
(
myStack
.
pop
(),
stack
.
pop
()))
{
Assertions
.
fail
();
}
}
}
int
numq
=
(
int
)
(
Math
.
random
()
*
value
);
if
(
queue
.
isEmpty
())
{
myQueue
.
push
(
numq
);
queue
.
offer
(
numq
);
}
else
{
if
(
Math
.
random
()
<
0.5
)
{
myQueue
.
push
(
numq
);
queue
.
offer
(
numq
);
}
else
{
if
(!
isEqual
(
myQueue
.
poll
(),
queue
.
poll
()))
{
Assertions
.
fail
();
}
}
}
}
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录