Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
tianyazhichiC
algorithm-visualizer
提交
b39ad705
A
algorithm-visualizer
项目概览
tianyazhichiC
/
algorithm-visualizer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
algorithm-visualizer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b39ad705
编写于
5月 19, 2016
作者:
J
Jason Park
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tree
上级
15c73291
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
54 addition
and
9 deletion
+54
-9
css/stylesheet.css
css/stylesheet.css
+2
-2
js/module/graph.js
js/module/graph.js
+46
-1
js/module/weighted_graph.js
js/module/weighted_graph.js
+1
-0
js/script.js
js/script.js
+3
-2
js/tracer.js
js/tracer.js
+2
-4
未找到文件。
css/stylesheet.css
浏览文件 @
b39ad705
...
...
@@ -188,14 +188,14 @@ section {
.data_container
{
top
:
60px
;
bottom
:
7
0%
;
bottom
:
6
0%
;
left
:
0
;
right
:
0
;
}
.code_container
{
left
:
0
;
top
:
3
0%
;
top
:
4
0%
;
right
:
0
;
bottom
:
0
;
}
...
...
js/module/graph.js
浏览文件 @
b39ad705
...
...
@@ -26,6 +26,7 @@ GraphTracer.prototype.clear = function () {
GraphTracer
.
prototype
.
createRandomData
=
function
(
N
,
ratio
)
{
Tracer
.
prototype
.
createRandomData
.
call
(
this
,
arguments
);
if
(
!
N
)
N
=
5
;
if
(
!
ratio
)
ratio
=
.
3
;
var
G
=
[];
for
(
var
i
=
0
;
i
<
N
;
i
++
)
{
...
...
@@ -39,9 +40,51 @@ GraphTracer.prototype.createRandomData = function (N, ratio) {
return
G
;
};
GraphTracer
.
prototype
.
setTreeData
=
function
(
G
,
root
)
{
root
=
root
||
0
;
var
maxDepth
=
-
1
;
var
chk
=
[];
for
(
var
i
=
0
;
i
<
G
.
length
;
i
++
)
chk
.
push
(
false
);
var
getDepth
=
function
(
node
,
depth
)
{
if
(
chk
[
node
])
throw
"
the given graph is not a tree because it forms a circuit
"
;
chk
[
node
]
=
true
;
if
(
maxDepth
<
depth
)
maxDepth
=
depth
;
for
(
var
i
=
0
;
i
<
G
[
node
].
length
;
i
++
)
{
if
(
G
[
node
][
i
])
getDepth
(
i
,
depth
+
1
);
}
};
getDepth
(
root
,
1
);
if
(
this
.
setData
(
G
,
root
))
return
true
;
var
place
=
function
(
node
,
x
,
y
)
{
var
temp
=
graph
.
nodes
(
n
(
node
));
temp
.
x
=
x
;
temp
.
y
=
y
;
};
var
wgap
=
1
/
(
maxDepth
-
1
);
var
dfs
=
function
(
node
,
depth
,
top
,
bottom
)
{
place
(
node
,
depth
*
wgap
,
(
top
+
bottom
)
/
2
);
var
children
=
0
;
for
(
var
i
=
0
;
i
<
G
[
node
].
length
;
i
++
)
{
if
(
G
[
node
][
i
])
children
++
;
}
var
vgap
=
(
bottom
-
top
)
/
children
;
var
cnt
=
0
;
for
(
var
i
=
0
;
i
<
G
[
node
].
length
;
i
++
)
{
if
(
G
[
node
][
i
])
dfs
(
i
,
depth
+
1
,
top
+
vgap
*
cnt
,
top
+
vgap
*
++
cnt
);
}
};
dfs
(
root
,
0
,
0
,
1
);
this
.
refresh
();
};
// Override
GraphTracer
.
prototype
.
setData
=
function
(
G
)
{
if
(
Tracer
.
prototype
.
setData
.
call
(
this
,
arguments
))
return
;
if
(
Tracer
.
prototype
.
setData
.
call
(
this
,
arguments
))
return
true
;
graph
.
clear
();
var
nodes
=
[];
...
...
@@ -82,6 +125,8 @@ GraphTracer.prototype.setData = function (G) {
ratio
:
1
});
this
.
refresh
();
return
false
;
};
GraphTracer
.
prototype
.
_clear
=
function
()
{
...
...
js/module/weighted_graph.js
浏览文件 @
b39ad705
...
...
@@ -20,6 +20,7 @@ WeightedGraphTracer.prototype.clear = function () {
WeightedGraphTracer
.
prototype
.
createRandomData
=
function
(
N
,
ratio
,
min
,
max
)
{
Tracer
.
prototype
.
createRandomData
.
call
(
this
,
arguments
);
if
(
!
N
)
N
=
5
;
if
(
!
ratio
)
ratio
=
.
3
;
if
(
!
min
)
min
=
1
;
if
(
!
max
)
max
=
5
;
...
...
js/script.js
浏览文件 @
b39ad705
...
...
@@ -20,8 +20,9 @@ dataEditor.on('change', function () {
});
var
loadFile
=
function
(
category
,
algorithm
,
file
,
explanation
)
{
lastData
=
null
;
$
(
'
#explanation
'
).
html
(
explanation
);
dataEditor
.
setValue
(
'
var G = [];
'
,
-
1
);
dataEditor
.
setValue
(
'
'
);
codeEditor
.
setValue
(
''
);
var
dir
=
'
./algorithm/
'
+
category
+
'
/
'
+
algorithm
+
'
/
'
+
file
+
'
/
'
;
...
...
@@ -49,7 +50,7 @@ var loadAlgorithm = function (category, algorithm) {
$
(
'
#desc_ref
'
).
empty
();
$
(
'
.files_bar
'
).
empty
();
$
(
'
#explanation
'
).
html
(
''
);
dataEditor
.
setValue
(
'
var G = [];
'
,
-
1
);
dataEditor
.
setValue
(
'
'
);
codeEditor
.
setValue
(
''
);
var
dir
=
'
./algorithm/
'
+
category
+
'
/
'
+
algorithm
+
'
/
'
;
...
...
js/tracer.js
浏览文件 @
b39ad705
var
timer
=
null
;
var
last
Module
=
null
,
last
Data
=
null
;
var
lastData
=
null
;
var
stepLimit
=
1
e6
;
var
Tracer
=
function
(
module
)
{
...
...
@@ -9,7 +9,6 @@ var Tracer = function (module) {
this
.
traceOptions
=
null
;
this
.
traceIndex
=
-
1
;
this
.
stepCnt
=
0
;
lastData
=
null
;
};
Tracer
.
prototype
.
resize
=
function
()
{
...
...
@@ -31,8 +30,7 @@ Tracer.prototype.createRandomData = function (arguments) {
Tracer
.
prototype
.
setData
=
function
(
arguments
)
{
var
data
=
JSON
.
stringify
(
arguments
);
if
(
lastModule
==
this
.
module
&&
lastData
==
data
)
return
true
;
lastModule
=
this
.
module
;
if
(
lastData
==
data
)
return
true
;
lastData
=
data
;
return
false
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录