Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
IOT,worksheet2part1
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
s2-peng
IOT,worksheet2part1
Commits
ef1b1fa8
You need to sign in or sign up before continuing.
Commit
ef1b1fa8
authored
3 years ago
by
s2-peng
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
d6567b55
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
binarytree2.py
+195
-0
195 additions, 0 deletions
binarytree2.py
with
195 additions
and
0 deletions
binarytree2.py
0 → 100644
+
195
−
0
View file @
ef1b1fa8
import
numpy
as
np
import
sys
class
MorseNode
:
def
__init__
(
self
,
c
,
morseCode
=
''
):
self
.
char
=
c
self
.
morseCode
=
morseCode
self
.
dot
=
None
self
.
dash
=
None
#←
def
insertLeft
(
self
,
c
):
self
.
dot
=
MorseNode
(
c
)
return
self
.
dot
#→
def
insertRight
(
self
,
c
):
self
.
dash
=
MorseNode
(
c
)
return
self
.
dash
root
=
MorseNode
(
'
*
'
)
#1st
root
.
dash
=
MorseNode
(
'
T
'
)
root
.
dot
=
MorseNode
(
'
E
'
)
#2nd
root
.
dot
.
dot
=
MorseNode
(
'
I
'
)
root
.
dot
.
dash
=
MorseNode
(
'
A
'
)
root
.
dash
.
dot
=
MorseNode
(
'
N
'
)
root
.
dash
.
dash
=
MorseNode
(
'
M
'
)
#3rd
root
.
dot
.
dot
.
dot
=
MorseNode
(
'
S
'
)
root
.
dot
.
dot
.
dash
=
MorseNode
(
'
U
'
)
root
.
dot
.
dash
.
dot
=
MorseNode
(
'
R
'
)
root
.
dot
.
dash
.
dash
=
MorseNode
(
'
W
'
)
root
.
dash
.
dot
.
dot
=
MorseNode
(
'
D
'
)
root
.
dash
.
dot
.
dash
=
MorseNode
(
'
K
'
)
root
.
dash
.
dash
.
dot
=
MorseNode
(
'
G
'
)
root
.
dash
.
dash
.
dash
=
MorseNode
(
'
O
'
)
#4th
root
.
dot
.
dot
.
dot
.
dot
=
MorseNode
(
'
H
'
)
root
.
dot
.
dot
.
dot
.
dash
=
MorseNode
(
'
V
'
)
root
.
dot
.
dot
.
dash
.
dot
=
MorseNode
(
'
F
'
)
root
.
dot
.
dot
.
dash
.
dash
=
MorseNode
(
''
)
root
.
dot
.
dash
.
dot
.
dot
=
MorseNode
(
'
L
'
)
root
.
dot
.
dash
.
dot
.
dash
=
MorseNode
(
''
)
root
.
dot
.
dash
.
dash
.
dot
=
MorseNode
(
'
P
'
)
root
.
dot
.
dash
.
dash
.
dash
=
MorseNode
(
'
J
'
)
root
.
dash
.
dot
.
dot
.
dot
=
MorseNode
(
"
B
"
)
root
.
dash
.
dot
.
dot
.
dash
=
MorseNode
(
"
X
"
)
root
.
dash
.
dot
.
dash
.
dot
=
MorseNode
(
"
C
"
)
root
.
dash
.
dot
.
dash
.
dash
=
MorseNode
(
"
Y
"
)
root
.
dash
.
dash
.
dot
.
dot
=
MorseNode
(
"
Z
"
)
root
.
dash
.
dash
.
dot
.
dash
=
MorseNode
(
"
Q
"
)
root
.
dash
.
dash
.
dash
.
dot
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dash
.
dash
=
MorseNode
(
""
)
#5
root
.
dot
.
dot
.
dot
.
dot
.
dot
=
MorseNode
(
"
5
"
)
root
.
dot
.
dot
.
dot
.
dot
.
dash
=
MorseNode
(
"
4
"
)
root
.
dot
.
dot
.
dot
.
dash
.
dot
=
MorseNode
(
""
)
root
.
dot
.
dot
.
dot
.
dash
.
dash
=
MorseNode
(
"
3
"
)
root
.
dot
.
dot
.
dash
.
dot
.
dot
=
MorseNode
(
""
)
root
.
dot
.
dot
.
dash
.
dot
.
dash
=
MorseNode
(
"
¿
"
)
root
.
dot
.
dot
.
dash
.
dash
.
dot
=
MorseNode
(
"
?
"
)
root
.
dot
.
dot
.
dash
.
dash
.
dash
=
MorseNode
(
"
2
"
)
root
.
dot
.
dash
.
dot
.
dot
.
dot
=
MorseNode
(
"
&
"
)
root
.
dot
.
dash
.
dot
.
dot
.
dash
=
MorseNode
(
""
)
root
.
dot
.
dash
.
dot
.
dash
.
dot
=
MorseNode
(
"
+
"
)
root
.
dot
.
dash
.
dot
.
dash
.
dash
=
MorseNode
(
""
)
root
.
dot
.
dash
.
dash
.
dot
.
dot
=
MorseNode
(
"
+
"
)
root
.
dot
.
dash
.
dash
.
dot
.
dash
=
MorseNode
(
""
)
root
.
dot
.
dash
.
dash
.
dash
.
dot
=
MorseNode
(
""
)
root
.
dot
.
dash
.
dash
.
dash
.
dash
=
MorseNode
(
"
1
"
)
root
.
dash
.
dot
.
dot
.
dot
.
dot
=
MorseNode
(
"
6
"
)
root
.
dash
.
dot
.
dot
.
dot
.
dash
=
MorseNode
(
"
=
"
)
root
.
dash
.
dot
.
dot
.
dash
.
dot
=
MorseNode
(
"
/
"
)
root
.
dash
.
dot
.
dot
.
dash
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dot
.
dash
.
dot
.
dot
=
MorseNode
(
""
)
root
.
dash
.
dot
.
dash
.
dot
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dot
.
dash
.
dash
.
dot
=
MorseNode
(
"
(
"
)
root
.
dash
.
dot
.
dash
.
dash
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dot
.
dot
.
dot
=
MorseNode
(
"
7
"
)
root
.
dash
.
dash
.
dot
.
dot
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dot
.
dash
.
dot
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dot
.
dash
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dash
.
dot
.
dot
=
MorseNode
(
"
8
"
)
root
.
dash
.
dash
.
dash
.
dot
.
dash
=
MorseNode
(
""
)
root
.
dash
.
dash
.
dash
.
dash
.
dot
=
MorseNode
(
"
9
"
)
root
.
dash
.
dash
.
dash
.
dash
.
dash
=
MorseNode
(
"
0
"
)
#6
root
.
dot
.
dash
.
dot
.
dash
.
dot
.
dash
=
MorseNode
(
"
.
"
)
root
.
dash
.
dash
.
dot
.
dot
.
dash
.
dash
=
MorseNode
(
"
,
"
)
root
.
dash
.
dot
.
dash
.
dash
.
dot
.
dash
=
MorseNode
(
"
)
"
)
root
.
dash
.
dot
.
dot
.
dot
.
dot
.
dash
=
MorseNode
(
"
-
"
)
root
.
dash
.
dash
.
dot
.
dot
.
dot
.
dash
=
MorseNode
(
"
i
"
)
root
.
dot
.
dot
.
dash
.
dash
.
dot
.
dash
=
MorseNode
(
"
_
"
)
root
.
dot
.
dash
.
dash
.
dash
.
dash
.
dot
=
MorseNode
(
"'"
)
root
.
dash
.
dash
.
dash
.
dot
.
dot
.
dot
=
MorseNode
(
"
:
"
)
root
.
dot
.
dash
.
dot
.
dot
.
dash
.
dot
=
MorseNode
(
"
”
"
)
root
.
dash
.
dot
.
dash
.
dot
.
dash
.
dash
=
MorseNode
(
"
!
"
)
root
.
dash
.
dot
.
dash
.
dot
.
dash
.
dot
=
MorseNode
(
"
;
"
)
root
.
dot
.
dot
.
dot
.
dash
.
dot
.
dot
=
MorseNode
(
"
\n
"
)
#7
root
.
dot
.
dot
.
dot
.
dash
.
dot
.
dot
.
dash
=
MorseNode
(
"
$
"
)
class
BinaryTree
:
def
__init__
(
self
):
# 初始化结点,因为左右结点都可能为空,所以默认设置左右结点的值为空,如果没有传入左右结点就是空,有的话则是传入的结点
self
.
root
=
root
def
encode
(
self
,
letter
):
node
=
self
.
findMorseCode
(
self
.
root
,
''
,
letter
)
return
node
.
morseCode
def
findMorseCode
(
self
,
node
,
morsecode
,
letter
):
if
node
==
None
:
return
None
node
.
morseCode
=
morsecode
if
node
.
char
==
letter
:
return
node
next
=
self
.
findMorseCode
(
node
.
dot
,
morsecode
+
'
.
'
,
letter
)
if
next
!=
None
:
return
next
else
:
return
self
.
findMorseCode
(
node
.
dash
,
morsecode
+
'
-
'
,
letter
)
def
decode
(
self
,
morseCode
):
letter
=
self
.
root
for
c
in
morseCode
:
if
c
==
'
'
:
return
letter
.
char
if
c
==
'
.
'
:
letter
=
letter
.
dot
elif
c
==
'
-
'
:
letter
=
letter
.
dash
return
letter
.
char
Tree
=
BinaryTree
()
def
encrypt
(
message
):
cipher
=
''
for
letter
in
message
:
if
letter
!=
'
'
:
# 查字典并添加对应的摩斯密码 # 用空格分隔不同字符的摩斯密码
cipher
+=
Tree
.
encode
(
letter
)
+
'
'
else
:
# 1个空格表示不同的字符 # 2表示不同的词
cipher
+=
'
'
return
cipher
# 将字符串从摩斯解密为英文的函数
def
decrypt
(
message
):
# 在末尾添加额外空间以访问最后一个摩斯密码
message
+=
'
'
decipher
=
''
citext
=
''
i
=
0
for
letter
in
message
:
# 检查空间
if
letter
!=
'
'
:
# 计数器来跟踪空间
i
=
0
# 在空格的情况下
citext
+=
letter
# 在空间的情况下
else
:
# 如果 i = 1 表示一个新字符
i
+=
1
# 如果 i = 2 表示一个新词
if
i
==
2
:
# 添加空格来分隔单词
decipher
+=
'
'
else
:
# 使用它们的值访问密钥(加密的反向)
decipher
+=
Tree
.
decode
(
citext
)
citext
=
''
return
decipher
result
=
encrypt
(
'
US
'
)
print
(
result
)
result
=
decrypt
(
result
)
print
(
result
)
x
=
sys
.
stdin
.
readline
(
100
)
print
(
x
)
result
=
encrypt
(
x
)
print
(
result
)
result
=
decrypt
(
result
)
print
(
result
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment