Migrate to Zensical (#1869)

* Fix Russian Ruby code extraction.

* Add zensical configs.
This commit is contained in:
Yudong Jin
2026-03-29 05:41:25 +08:00
committed by GitHub
parent bc4c5ec414
commit 7a78369e4c
84 changed files with 1302 additions and 445 deletions
+12 -12
View File
@@ -7,19 +7,19 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Класс двоичного дерева в массивном представлении ###
### Класс двоичного дерева в массивном представлении ###
class ArrayBinaryTree
# ## Конструктор ###
### Конструктор ###
def initialize(arr)
@tree = arr.to_a
end
# ## Вместимость списка ###
### Вместимость списка ###
def size
@tree.length
end
# ## Получить значение узла с индексом i ###
### Получить значение узла с индексом i ###
def val(i)
# Если индекс выходит за границы, вернуть nil, обозначающий пустую ячейку
return if i < 0 || i >= size
@@ -27,22 +27,22 @@ class ArrayBinaryTree
@tree[i]
end
# ## Получить индекс левого дочернего узла узла с индексом i ###
### Получить индекс левого дочернего узла узла с индексом i ###
def left(i)
2 * i + 1
end
# ## Получить индекс правого дочернего узла узла с индексом i ###
### Получить индекс правого дочернего узла узла с индексом i ###
def right(i)
2 * i + 2
end
# ## Получить индекс родительского узла узла с индексом i ###
### Получить индекс родительского узла узла с индексом i ###
def parent(i)
(i - 1) / 2
end
# ## Обход в ширину ###
### Обход в ширину ###
def level_order
@res = []
@@ -54,7 +54,7 @@ class ArrayBinaryTree
@res
end
# ## Обход в глубину ###
### Обход в глубину ###
def dfs(i, order)
return if val(i).nil?
# Предварительный обход
@@ -67,21 +67,21 @@ class ArrayBinaryTree
@res << val(i) if order == :post
end
# ## Предварительный обход ###
### Предварительный обход ###
def pre_order
@res = []
dfs(0, :pre)
@res
end
# ## Симметричный обход ###
### Симметричный обход ###
def in_order
@res = []
dfs(0, :in)
@res
end
# ## Обратный обход ###
### Обратный обход ###
def post_order
@res = []
dfs(0, :post)
+12 -12
View File
@@ -7,19 +7,19 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## AVL-дерево ###
### AVL-дерево ###
class AVLTree
# ## Конструктор ###
### Конструктор ###
def initialize
@root = nil
end
# ## Получение корневого узла двоичного дерева ###
### Получение корневого узла двоичного дерева ###
def get_root
@root
end
# ## Получить высоту узла ###
### Получить высоту узла ###
def height(node)
# Высота пустого узла равна -1, высота листового узла равна 0
return node.height unless node.nil?
@@ -27,13 +27,13 @@ class AVLTree
-1
end
# ## Обновить высоту узла ###
### Обновить высоту узла ###
def update_height(node)
# Высота узла равна высоте более высокого поддерева + 1
node.height = [height(node.left), height(node.right)].max + 1
end
# ## Получить коэффициент баланса ###
### Получить коэффициент баланса ###
def balance_factor(node)
# Коэффициент баланса пустого узла равен 0
return 0 if node.nil?
@@ -42,7 +42,7 @@ class AVLTree
height(node.left) - height(node.right)
end
# ## Операция правого вращения ###
### Операция правого вращения ###
def right_rotate(node)
child = node.left
grand_child = child.right
@@ -56,7 +56,7 @@ class AVLTree
child
end
# ## Операция левого вращения ###
### Операция левого вращения ###
def left_rotate(node)
child = node.right
grand_child = child.left
@@ -70,7 +70,7 @@ class AVLTree
child
end
# ## Выполнить вращение, чтобы снова сбалансировать поддерево ###
### Выполнить вращение, чтобы снова сбалансировать поддерево ###
def rotate(node)
# Получить коэффициент баланса узла node
balance_factor = balance_factor(node)
@@ -99,7 +99,7 @@ class AVLTree
node
end
# ## Вставка узла ###
### Вставка узла ###
def insert(val)
@root = insert_helper(@root, val)
end
@@ -122,7 +122,7 @@ class AVLTree
rotate(node)
end
# ## Удаление узла ###
### Удаление узла ###
def remove(val)
@root = remove_helper(@root, val)
end
@@ -158,7 +158,7 @@ class AVLTree
rotate(node)
end
# ## Поиск узла ###
### Поиск узла ###
def search(val)
cur = @root
# Искать в цикле и выйти после прохода за листовой узел
@@ -7,20 +7,20 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Двоичное дерево поиска ###
### Двоичное дерево поиска ###
class BinarySearchTree
# ## Конструктор ###
### Конструктор ###
def initialize
# Инициализировать пустое дерево
@root = nil
end
# ## Получение корневого узла двоичного дерева ###
### Получение корневого узла двоичного дерева ###
def get_root
@root
end
# ## Поиск узла ###
### Поиск узла ###
def search(num)
cur = @root
@@ -41,7 +41,7 @@ class BinarySearchTree
cur
end
# ## Вставка узла ###
### Вставка узла ###
def insert(num)
# Если дерево пусто, инициализировать корневой узел
if @root.nil?
@@ -74,7 +74,7 @@ class BinarySearchTree
end
end
# ## Удаление узла ###
### Удаление узла ###
def remove(num)
# Если дерево пусто, сразу вернуть
return if @root.nil?
@@ -7,7 +7,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Обход в ширину ###
### Обход в ширину ###
def level_order(root)
# Инициализировать очередь и добавить корневой узел
queue = [root]
@@ -7,7 +7,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
require_relative '../utils/tree_node'
require_relative '../utils/print_util'
# ## Предварительный обход ###
### Предварительный обход ###
def pre_order(root)
return if root.nil?
@@ -17,7 +17,7 @@ def pre_order(root)
pre_order(root.right)
end
# ## Симметричный обход ###
### Симметричный обход ###
def in_order(root)
return if root.nil?
@@ -27,7 +27,7 @@ def in_order(root)
in_order(root.right)
end
# ## Обратный обход ###
### Обратный обход ###
def post_order(root)
return if root.nil?