mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-24 20:16:06 +00:00
Migrate to Zensical (#1869)
* Fix Russian Ruby code extraction. * Add zensical configs.
This commit is contained in:
@@ -4,7 +4,7 @@ Created Time: 2024-03-18
|
||||
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
# ## Класс узла связного списка ###
|
||||
### Класс узла связного списка ###
|
||||
class ListNode
|
||||
attr_accessor :val # Значение узла
|
||||
attr_accessor :next # Ссылка на следующий узел
|
||||
@@ -15,7 +15,7 @@ class ListNode
|
||||
end
|
||||
end
|
||||
|
||||
# ## Десериализация списка в связный список ###
|
||||
### Десериализация списка в связный список ###
|
||||
def arr_to_linked_list(arr)
|
||||
head = current = ListNode.new(arr[0])
|
||||
|
||||
@@ -27,7 +27,7 @@ def arr_to_linked_list(arr)
|
||||
head
|
||||
end
|
||||
|
||||
# ## Сериализация связного списка в список ###
|
||||
### Сериализация связного списка в список ###
|
||||
def linked_list_to_arr(head)
|
||||
arr = []
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
|
||||
require_relative "./tree_node"
|
||||
|
||||
# ## Вывести матрицу ###
|
||||
### Вывести матрицу ###
|
||||
def print_matrix(mat)
|
||||
s = []
|
||||
mat.each { |arr| s << " #{arr.to_s}" }
|
||||
puts "[\n#{s.join(",\n")}\n]"
|
||||
end
|
||||
|
||||
# ## Вывести связный список ###
|
||||
### Вывести связный список ###
|
||||
def print_linked_list(head)
|
||||
list = []
|
||||
while head
|
||||
@@ -39,8 +39,8 @@ def show_trunk(p)
|
||||
print p.str
|
||||
end
|
||||
|
||||
# ## Вывести двоичное дерево ###
|
||||
# Этот вывод дерева заимствован из TECHIE DELIGHT
|
||||
### Вывести двоичное дерево ###
|
||||
# This tree printer is borrowed from TECHIE DELIGHT
|
||||
# https://www.techiedelight.com/c-program-print-binary-tree/
|
||||
def print_tree(root, prev=nil, is_right=false)
|
||||
return if root.nil?
|
||||
@@ -66,12 +66,12 @@ def print_tree(root, prev=nil, is_right=false)
|
||||
print_tree(root.left, trunk, false)
|
||||
end
|
||||
|
||||
# ## Вывести хеш-таблицу ###
|
||||
### Вывести хеш-таблицу ###
|
||||
def print_hash_map(hmap)
|
||||
hmap.entries.each { |key, value| puts "#{key} -> #{value}" }
|
||||
end
|
||||
|
||||
# ## Вывести кучу ###
|
||||
### Вывести кучу ###
|
||||
def print_heap(heap)
|
||||
puts "Массивное представление кучи:#{heap}"
|
||||
puts "Древовидное представление кучи:"
|
||||
|
||||
@@ -4,7 +4,7 @@ Created Time: 2024-03-30
|
||||
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
# ## Класс узла двоичного дерева ###
|
||||
### Класс узла двоичного дерева ###
|
||||
class TreeNode
|
||||
attr_accessor :val # Значение узла
|
||||
attr_accessor :height # Высота узла
|
||||
@@ -17,7 +17,7 @@ class TreeNode
|
||||
end
|
||||
end
|
||||
|
||||
# ## Десериализация списка в двоичное дерево: рекурсия ###
|
||||
### Десериализация списка в двоичное дерево: рекурсия ###
|
||||
def arr_to_tree_dfs(arr, i)
|
||||
# Если индекс выходит за длину массива или соответствующий элемент равен nil, вернуть nil
|
||||
return if i < 0 || i >= arr.length || arr[i].nil?
|
||||
@@ -29,12 +29,12 @@ def arr_to_tree_dfs(arr, i)
|
||||
root
|
||||
end
|
||||
|
||||
# ## Десериализация списка в двоичное дерево ###
|
||||
### Десериализация списка в двоичное дерево ###
|
||||
def arr_to_tree(arr)
|
||||
arr_to_tree_dfs(arr, 0)
|
||||
end
|
||||
|
||||
# ## Сериализация двоичного дерева в список: рекурсия ###
|
||||
### Сериализация двоичного дерева в список: рекурсия ###
|
||||
def tree_to_arr_dfs(root, i, res)
|
||||
return if root.nil?
|
||||
|
||||
@@ -45,7 +45,7 @@ def tree_to_arr_dfs(root, i, res)
|
||||
tree_to_arr_dfs(root.right, 2 * i + 2, res)
|
||||
end
|
||||
|
||||
# ## Сериализация двоичного дерева в список ###
|
||||
### Сериализация двоичного дерева в список ###
|
||||
def tree_to_arr(root)
|
||||
res = []
|
||||
tree_to_arr_dfs(root, 0, res)
|
||||
|
||||
@@ -4,7 +4,7 @@ Created Time: 2024-04-25
|
||||
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
# ## Класс вершины ###
|
||||
### Класс вершины ###
|
||||
class Vertex
|
||||
attr_accessor :val
|
||||
|
||||
@@ -13,12 +13,12 @@ class Vertex
|
||||
end
|
||||
end
|
||||
|
||||
# ## На вход подается список значений vals, на выходе возвращается список вершин vets ###
|
||||
### На вход подается список значений vals, на выходе возвращается список вершин vets ###
|
||||
def vals_to_vets(vals)
|
||||
Array.new(vals.length) { |i| Vertex.new(vals[i]) }
|
||||
end
|
||||
|
||||
# ## На вход подается список вершин vets, на выходе возвращается список значений vals ###
|
||||
### На вход подается список вершин vets, на выходе возвращается список значений vals ###
|
||||
def vets_to_vals(vets)
|
||||
Array.new(vets.length) { |i| vets[i].val }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user