From 0aae500ac6ac0f6d80c15601e780ef090d966ee7 Mon Sep 17 00:00:00 2001
From: krahets
Date: Thu, 2 Nov 2023 01:39:40 +0800
Subject: [PATCH 01/30] Translate 1.0.0b6 release with the machine learning
translator.
---
README.md | 40 +-
docs-en/assets/covers/chapter_appendix.jpg | Bin 0 -> 116050 bytes
.../covers/chapter_array_and_linkedlist.jpg | Bin 0 -> 128202 bytes
.../assets/covers/chapter_backtracking.jpg | Bin 0 -> 129346 bytes
.../covers/chapter_complexity_analysis.jpg | Bin 0 -> 96178 bytes
.../assets/covers/chapter_data_structure.jpg | Bin 0 -> 97946 bytes
.../covers/chapter_divide_and_conquer.jpg | Bin 0 -> 118326 bytes
.../covers/chapter_dynamic_programming.jpg | Bin 0 -> 167504 bytes
docs-en/assets/covers/chapter_graph.jpg | Bin 0 -> 85455 bytes
docs-en/assets/covers/chapter_greedy.jpg | Bin 0 -> 138338 bytes
docs-en/assets/covers/chapter_hashing.jpg | Bin 0 -> 140215 bytes
docs-en/assets/covers/chapter_heap.jpg | Bin 0 -> 111769 bytes
.../assets/covers/chapter_introduction.jpg | Bin 0 -> 138805 bytes
docs-en/assets/covers/chapter_preface.jpg | Bin 0 -> 121206 bytes
docs-en/assets/covers/chapter_searching.jpg | Bin 0 -> 131307 bytes
docs-en/assets/covers/chapter_sorting.jpg | Bin 0 -> 61933 bytes
.../assets/covers/chapter_stack_and_queue.jpg | Bin 0 -> 105327 bytes
docs-en/assets/covers/chapter_tree.jpg | Bin 0 -> 120397 bytes
.../contribution.assets/edit_markdown.png | Bin 0 -> 77268 bytes
docs-en/chapter_appendix/contribution.md | 47 +
docs-en/chapter_appendix/index.md | 7 +
docs-en/chapter_appendix/installation.md | 55 +
docs-en/chapter_appendix/terminology.md | 114 ++
.../array.assets/array_definition.png | Bin 0 -> 21031 bytes
.../array.assets/array_insert_element.png | Bin 0 -> 29326 bytes
.../array_memory_location_calculation.png | Bin 0 -> 24268 bytes
.../array.assets/array_remove_element.png | Bin 0 -> 28152 bytes
docs-en/chapter_array_and_linkedlist/array.md | 210 ++++
docs-en/chapter_array_and_linkedlist/index.md | 13 +
.../linkedlist_common_types.png | Bin 0 -> 19941 bytes
.../linkedlist_definition.png | Bin 0 -> 26266 bytes
.../linkedlist_insert_node.png | Bin 0 -> 21993 bytes
.../linkedlist_remove_node.png | Bin 0 -> 24346 bytes
.../linked_list.md | 671 ++++++++++
docs-en/chapter_array_and_linkedlist/list.md | 872 +++++++++++++
.../chapter_array_and_linkedlist/summary.md | 78 ++
.../backtrack_remove_return_or_not.png | Bin 0 -> 36985 bytes
.../preorder_find_constrained_paths.png | Bin 0 -> 30918 bytes
.../preorder_find_nodes.png | Bin 0 -> 29719 bytes
.../preorder_find_paths_step1.png | Bin 0 -> 19033 bytes
.../preorder_find_paths_step10.png | Bin 0 -> 31951 bytes
.../preorder_find_paths_step11.png | Bin 0 -> 30144 bytes
.../preorder_find_paths_step2.png | Bin 0 -> 24034 bytes
.../preorder_find_paths_step3.png | Bin 0 -> 22636 bytes
.../preorder_find_paths_step4.png | Bin 0 -> 23019 bytes
.../preorder_find_paths_step5.png | Bin 0 -> 24340 bytes
.../preorder_find_paths_step6.png | Bin 0 -> 24842 bytes
.../preorder_find_paths_step7.png | Bin 0 -> 25893 bytes
.../preorder_find_paths_step8.png | Bin 0 -> 27330 bytes
.../preorder_find_paths_step9.png | Bin 0 -> 27022 bytes
.../backtracking_algorithm.md | 457 +++++++
docs-en/chapter_backtracking/index.md | 13 +
.../n_queens_cols_diagonals.png | Bin 0 -> 36176 bytes
.../n_queens_constraints.png | Bin 0 -> 27406 bytes
.../n_queens_placing.png | Bin 0 -> 25933 bytes
.../solution_4_queens.png | Bin 0 -> 9675 bytes
.../chapter_backtracking/n_queens_problem.md | 49 +
.../permutations_i.png | Bin 0 -> 19156 bytes
.../permutations_i_pruning.png | Bin 0 -> 31373 bytes
.../permutations_ii.png | Bin 0 -> 22694 bytes
.../permutations_ii_pruning.png | Bin 0 -> 27846 bytes
.../permutations_ii_pruning_summary.png | Bin 0 -> 25237 bytes
.../permutations_problem.md | 95 ++
.../subset_sum_i.png | Bin 0 -> 40044 bytes
.../subset_sum_i_naive.png | Bin 0 -> 34196 bytes
.../subset_sum_i_pruning.png | Bin 0 -> 33585 bytes
.../subset_sum_ii.png | Bin 0 -> 42761 bytes
.../subset_sum_ii_repeat.png | Bin 0 -> 20846 bytes
.../subset_sum_problem.md | 95 ++
docs-en/chapter_backtracking/summary.md | 23 +
.../chapter_computational_complexity/index.md | 13 +
.../iteration.png | Bin 0 -> 12999 bytes
.../nested_iteration.png | Bin 0 -> 16356 bytes
.../recursion_sum.png | Bin 0 -> 25092 bytes
.../recursion_sum_depth.png | Bin 0 -> 26371 bytes
.../recursion_tree.png | Bin 0 -> 15050 bytes
.../tail_recursion_sum.png | Bin 0 -> 28654 bytes
.../iteration_and_recursion.md | 194 +++
.../performance_evaluation.md | 48 +
.../space_complexity_common_types.png | Bin 0 -> 22450 bytes
.../space_complexity_exponential.png | Bin 0 -> 19282 bytes
.../space_complexity_recursive_linear.png | Bin 0 -> 25663 bytes
.../space_complexity_recursive_quadratic.png | Bin 0 -> 29957 bytes
.../space_complexity.assets/space_types.png | Bin 0 -> 17336 bytes
.../space_complexity.md | 780 ++++++++++++
.../summary.md | 49 +
.../asymptotic_upper_bound.png | Bin 0 -> 21690 bytes
.../time_complexity_common_types.png | Bin 0 -> 22406 bytes
...e_complexity_constant_linear_quadratic.png | Bin 0 -> 19982 bytes
.../time_complexity_exponential.png | Bin 0 -> 21291 bytes
.../time_complexity_factorial.png | Bin 0 -> 23708 bytes
.../time_complexity_logarithmic.png | Bin 0 -> 22186 bytes
.../time_complexity_logarithmic_linear.png | Bin 0 -> 22444 bytes
.../time_complexity_simple_example.png | Bin 0 -> 15089 bytes
.../time_complexity.md | 1092 +++++++++++++++++
.../basic_data_types.md | 159 +++
.../character_encoding.assets/ascii_table.png | Bin 0 -> 61596 bytes
.../unicode_hello_algo.png | Bin 0 -> 20820 bytes
.../utf-8_hello_algo.png | Bin 0 -> 27053 bytes
.../character_encoding.md | 87 ++
.../classification_logic_structure.png | Bin 0 -> 30422 bytes
.../classification_phisical_structure.png | Bin 0 -> 25889 bytes
.../computer_memory_location.png | Bin 0 -> 68081 bytes
.../classification_of_data_structure.md | 47 +
docs-en/chapter_data_structure/index.md | 13 +
.../1s_2s_complement.png | Bin 0 -> 21585 bytes
.../number_encoding.assets/ieee_754_float.png | Bin 0 -> 24105 bytes
.../chapter_data_structure/number_encoding.md | 150 +++
docs-en/chapter_data_structure/summary.md | 33 +
.../binary_search_recur.png | Bin 0 -> 19118 bytes
.../binary_search_recur.md | 45 +
.../build_tree_division_pointers.png | Bin 0 -> 17892 bytes
.../build_tree_example.png | Bin 0 -> 16064 bytes
.../build_tree_preorder_inorder_division.png | Bin 0 -> 27907 bytes
.../built_tree_overall.png | Bin 0 -> 28195 bytes
.../built_tree_step1.png | Bin 0 -> 12549 bytes
.../built_tree_step2.png | Bin 0 -> 12902 bytes
.../built_tree_step3.png | Bin 0 -> 14406 bytes
.../built_tree_step4.png | Bin 0 -> 14787 bytes
.../built_tree_step5.png | Bin 0 -> 15012 bytes
.../built_tree_step6.png | Bin 0 -> 16380 bytes
.../built_tree_step7.png | Bin 0 -> 16237 bytes
.../built_tree_step8.png | Bin 0 -> 17697 bytes
.../built_tree_step9.png | Bin 0 -> 18079 bytes
.../build_binary_tree_problem.md | 99 ++
.../divide_and_conquer_bubble_sort.png | Bin 0 -> 26190 bytes
.../divide_and_conquer_merge_sort.png | Bin 0 -> 28457 bytes
.../divide_and_conquer_parallel_computing.png | Bin 0 -> 17704 bytes
.../divide_and_conquer.md | 91 ++
.../hanota_divide_and_conquer.png | Bin 0 -> 33715 bytes
.../hanota_problem.assets/hanota_example.png | Bin 0 -> 13517 bytes
.../hanota_problem.assets/hanota_f1_step1.png | Bin 0 -> 8363 bytes
.../hanota_problem.assets/hanota_f1_step2.png | Bin 0 -> 11776 bytes
.../hanota_problem.assets/hanota_f2_step1.png | Bin 0 -> 8709 bytes
.../hanota_problem.assets/hanota_f2_step2.png | Bin 0 -> 12146 bytes
.../hanota_problem.assets/hanota_f2_step3.png | Bin 0 -> 14667 bytes
.../hanota_problem.assets/hanota_f2_step4.png | Bin 0 -> 17100 bytes
.../hanota_problem.assets/hanota_f3_step1.png | Bin 0 -> 11993 bytes
.../hanota_problem.assets/hanota_f3_step2.png | Bin 0 -> 12970 bytes
.../hanota_problem.assets/hanota_f3_step3.png | Bin 0 -> 16000 bytes
.../hanota_problem.assets/hanota_f3_step4.png | Bin 0 -> 18826 bytes
.../hanota_recursive_tree.png | Bin 0 -> 20003 bytes
.../hanota_problem.md | 97 ++
docs-en/chapter_divide_and_conquer/index.md | 13 +
docs-en/chapter_divide_and_conquer/summary.md | 11 +
.../climbing_stairs_constraint_example.png | Bin 0 -> 24332 bytes
...mbing_stairs_constraint_state_transfer.png | Bin 0 -> 23536 bytes
.../min_cost_cs_dp.png | Bin 0 -> 22479 bytes
.../min_cost_cs_example.png | Bin 0 -> 22882 bytes
.../dp_problem_features.md | 101 ++
.../min_path_sum_dfs.png | Bin 0 -> 32631 bytes
.../min_path_sum_dfs_mem.png | Bin 0 -> 23543 bytes
.../min_path_sum_dp_step1.png | Bin 0 -> 13580 bytes
.../min_path_sum_dp_step10.png | Bin 0 -> 18327 bytes
.../min_path_sum_dp_step11.png | Bin 0 -> 18228 bytes
.../min_path_sum_dp_step12.png | Bin 0 -> 14625 bytes
.../min_path_sum_dp_step2.png | Bin 0 -> 21908 bytes
.../min_path_sum_dp_step3.png | Bin 0 -> 18988 bytes
.../min_path_sum_dp_step4.png | Bin 0 -> 18536 bytes
.../min_path_sum_dp_step5.png | Bin 0 -> 18373 bytes
.../min_path_sum_dp_step6.png | Bin 0 -> 18637 bytes
.../min_path_sum_dp_step7.png | Bin 0 -> 18381 bytes
.../min_path_sum_dp_step8.png | Bin 0 -> 18216 bytes
.../min_path_sum_dp_step9.png | Bin 0 -> 18623 bytes
.../min_path_sum_example.png | Bin 0 -> 16381 bytes
.../min_path_sum_solution_step1.png | Bin 0 -> 24067 bytes
.../min_path_sum_solution_step2.png | Bin 0 -> 21113 bytes
.../min_path_sum_solution_step3.png | Bin 0 -> 23693 bytes
.../dp_solution_pipeline.md | 181 +++
.../edit_distance_decision_tree.png | Bin 0 -> 23361 bytes
.../edit_distance_dp_step1.png | Bin 0 -> 15842 bytes
.../edit_distance_dp_step10.png | Bin 0 -> 17085 bytes
.../edit_distance_dp_step11.png | Bin 0 -> 17273 bytes
.../edit_distance_dp_step12.png | Bin 0 -> 17178 bytes
.../edit_distance_dp_step13.png | Bin 0 -> 17454 bytes
.../edit_distance_dp_step14.png | Bin 0 -> 17153 bytes
.../edit_distance_dp_step15.png | Bin 0 -> 13535 bytes
.../edit_distance_dp_step2.png | Bin 0 -> 14481 bytes
.../edit_distance_dp_step3.png | Bin 0 -> 16915 bytes
.../edit_distance_dp_step4.png | Bin 0 -> 17285 bytes
.../edit_distance_dp_step5.png | Bin 0 -> 17172 bytes
.../edit_distance_dp_step6.png | Bin 0 -> 17044 bytes
.../edit_distance_dp_step7.png | Bin 0 -> 17000 bytes
.../edit_distance_dp_step8.png | Bin 0 -> 15777 bytes
.../edit_distance_dp_step9.png | Bin 0 -> 16975 bytes
.../edit_distance_example.png | Bin 0 -> 15493 bytes
.../edit_distance_state_transfer.png | Bin 0 -> 25317 bytes
.../edit_distance_problem.md | 129 ++
docs-en/chapter_dynamic_programming/index.md | 13 +
.../climbing_stairs_dfs_memo_tree.png | Bin 0 -> 28461 bytes
.../climbing_stairs_dfs_tree.png | Bin 0 -> 25605 bytes
.../climbing_stairs_dp.png | Bin 0 -> 19006 bytes
.../climbing_stairs_example.png | Bin 0 -> 20425 bytes
.../climbing_stairs_state_transfer.png | Bin 0 -> 19699 bytes
.../intro_to_dynamic_programming.md | 108 ++
.../knapsack_problem.assets/knapsack_dfs.png | Bin 0 -> 36148 bytes
.../knapsack_dfs_mem.png | Bin 0 -> 36941 bytes
.../knapsack_dp_comp_step1.png | Bin 0 -> 21542 bytes
.../knapsack_dp_comp_step2.png | Bin 0 -> 22495 bytes
.../knapsack_dp_comp_step3.png | Bin 0 -> 22601 bytes
.../knapsack_dp_comp_step4.png | Bin 0 -> 22723 bytes
.../knapsack_dp_comp_step5.png | Bin 0 -> 22021 bytes
.../knapsack_dp_comp_step6.png | Bin 0 -> 22546 bytes
.../knapsack_dp_step1.png | Bin 0 -> 20964 bytes
.../knapsack_dp_step10.png | Bin 0 -> 20882 bytes
.../knapsack_dp_step11.png | Bin 0 -> 21161 bytes
.../knapsack_dp_step12.png | Bin 0 -> 21959 bytes
.../knapsack_dp_step13.png | Bin 0 -> 21964 bytes
.../knapsack_dp_step14.png | Bin 0 -> 19832 bytes
.../knapsack_dp_step2.png | Bin 0 -> 21220 bytes
.../knapsack_dp_step3.png | Bin 0 -> 21499 bytes
.../knapsack_dp_step4.png | Bin 0 -> 21402 bytes
.../knapsack_dp_step5.png | Bin 0 -> 21401 bytes
.../knapsack_dp_step6.png | Bin 0 -> 20541 bytes
.../knapsack_dp_step7.png | Bin 0 -> 21438 bytes
.../knapsack_dp_step8.png | Bin 0 -> 21724 bytes
.../knapsack_dp_step9.png | Bin 0 -> 21620 bytes
.../knapsack_example.png | Bin 0 -> 22591 bytes
.../knapsack_problem.md | 168 +++
.../chapter_dynamic_programming/summary.md | 23 +
.../coin_change_dp_step1.png | Bin 0 -> 20245 bytes
.../coin_change_dp_step10.png | Bin 0 -> 21108 bytes
.../coin_change_dp_step11.png | Bin 0 -> 20818 bytes
.../coin_change_dp_step12.png | Bin 0 -> 20560 bytes
.../coin_change_dp_step13.png | Bin 0 -> 20876 bytes
.../coin_change_dp_step14.png | Bin 0 -> 20644 bytes
.../coin_change_dp_step15.png | Bin 0 -> 19086 bytes
.../coin_change_dp_step2.png | Bin 0 -> 21139 bytes
.../coin_change_dp_step3.png | Bin 0 -> 20910 bytes
.../coin_change_dp_step4.png | Bin 0 -> 21218 bytes
.../coin_change_dp_step5.png | Bin 0 -> 21225 bytes
.../coin_change_dp_step6.png | Bin 0 -> 21362 bytes
.../coin_change_dp_step7.png | Bin 0 -> 20487 bytes
.../coin_change_dp_step8.png | Bin 0 -> 20826 bytes
.../coin_change_dp_step9.png | Bin 0 -> 20872 bytes
.../coin_change_example.png | Bin 0 -> 17596 bytes
.../coin_change_ii_example.png | Bin 0 -> 20174 bytes
.../unbounded_knapsack_dp_comp_step1.png | Bin 0 -> 22316 bytes
.../unbounded_knapsack_dp_comp_step2.png | Bin 0 -> 22311 bytes
.../unbounded_knapsack_dp_comp_step3.png | Bin 0 -> 22852 bytes
.../unbounded_knapsack_dp_comp_step4.png | Bin 0 -> 23328 bytes
.../unbounded_knapsack_dp_comp_step5.png | Bin 0 -> 22980 bytes
.../unbounded_knapsack_dp_comp_step6.png | Bin 0 -> 23229 bytes
.../unbounded_knapsack_example.png | Bin 0 -> 23120 bytes
.../unbounded_knapsack_problem.md | 209 ++++
.../graph.assets/adjacency_list.png | Bin 0 -> 20549 bytes
.../graph.assets/adjacency_matrix.png | Bin 0 -> 21965 bytes
.../graph.assets/connected_graph.png | Bin 0 -> 14152 bytes
.../graph.assets/directed_graph.png | Bin 0 -> 14967 bytes
.../graph.assets/linkedlist_tree_graph.png | Bin 0 -> 23400 bytes
.../graph.assets/weighted_graph.png | Bin 0 -> 16486 bytes
docs-en/chapter_graph/graph.md | 83 ++
.../adjacency_list_add_edge.png | Bin 0 -> 23075 bytes
.../adjacency_list_add_vertex.png | Bin 0 -> 23525 bytes
.../adjacency_list_initialization.png | Bin 0 -> 21847 bytes
.../adjacency_list_remove_edge.png | Bin 0 -> 22631 bytes
.../adjacency_list_remove_vertex.png | Bin 0 -> 20930 bytes
.../adjacency_matrix_add_edge.png | Bin 0 -> 21356 bytes
.../adjacency_matrix_add_vertex.png | Bin 0 -> 24403 bytes
.../adjacency_matrix_initialization.png | Bin 0 -> 20015 bytes
.../adjacency_matrix_remove_edge.png | Bin 0 -> 21580 bytes
.../adjacency_matrix_remove_vertex.png | Bin 0 -> 20689 bytes
docs-en/chapter_graph/graph_operations.md | 86 ++
.../graph_traversal.assets/graph_bfs.png | Bin 0 -> 26458 bytes
.../graph_bfs_step1.png | Bin 0 -> 21581 bytes
.../graph_bfs_step10.png | Bin 0 -> 37238 bytes
.../graph_bfs_step11.png | Bin 0 -> 29249 bytes
.../graph_bfs_step2.png | Bin 0 -> 32025 bytes
.../graph_bfs_step3.png | Bin 0 -> 34421 bytes
.../graph_bfs_step4.png | Bin 0 -> 35432 bytes
.../graph_bfs_step5.png | Bin 0 -> 36665 bytes
.../graph_bfs_step6.png | Bin 0 -> 36908 bytes
.../graph_bfs_step7.png | Bin 0 -> 36877 bytes
.../graph_bfs_step8.png | Bin 0 -> 37855 bytes
.../graph_bfs_step9.png | Bin 0 -> 37451 bytes
.../graph_traversal.assets/graph_dfs.png | Bin 0 -> 28293 bytes
.../graph_dfs_step1.png | Bin 0 -> 18828 bytes
.../graph_dfs_step10.png | Bin 0 -> 31287 bytes
.../graph_dfs_step11.png | Bin 0 -> 36078 bytes
.../graph_dfs_step2.png | Bin 0 -> 23157 bytes
.../graph_dfs_step3.png | Bin 0 -> 24094 bytes
.../graph_dfs_step4.png | Bin 0 -> 25136 bytes
.../graph_dfs_step5.png | Bin 0 -> 25496 bytes
.../graph_dfs_step6.png | Bin 0 -> 27735 bytes
.../graph_dfs_step7.png | Bin 0 -> 26505 bytes
.../graph_dfs_step8.png | Bin 0 -> 29200 bytes
.../graph_dfs_step9.png | Bin 0 -> 35521 bytes
docs-en/chapter_graph/graph_traversal.md | 136 ++
docs-en/chapter_graph/index.md | 13 +
docs-en/chapter_graph/summary.md | 30 +
.../fractional_knapsack_area_chart.png | Bin 0 -> 15251 bytes
.../fractional_knapsack_example.png | Bin 0 -> 26515 bytes
.../fractional_knapsack_greedy_strategy.png | Bin 0 -> 23439 bytes
.../fractional_knapsack_unit_value.png | Bin 0 -> 23590 bytes
.../fractional_knapsack_problem.md | 50 +
.../coin_change_greedy_strategy.png | Bin 0 -> 39434 bytes
.../coin_change_greedy_vs_dp.png | Bin 0 -> 25629 bytes
docs-en/chapter_greedy/greedy_algorithm.md | 92 ++
docs-en/chapter_greedy/index.md | 13 +
.../max_capacity_example.png | Bin 0 -> 14129 bytes
.../max_capacity_greedy_step1.png | Bin 0 -> 17795 bytes
.../max_capacity_greedy_step2.png | Bin 0 -> 20180 bytes
.../max_capacity_greedy_step3.png | Bin 0 -> 19847 bytes
.../max_capacity_greedy_step4.png | Bin 0 -> 20609 bytes
.../max_capacity_greedy_step5.png | Bin 0 -> 20592 bytes
.../max_capacity_greedy_step6.png | Bin 0 -> 21178 bytes
.../max_capacity_greedy_step7.png | Bin 0 -> 21156 bytes
.../max_capacity_greedy_step8.png | Bin 0 -> 21266 bytes
.../max_capacity_greedy_step9.png | Bin 0 -> 18195 bytes
.../max_capacity_initial_state.png | Bin 0 -> 17445 bytes
.../max_capacity_moving_long_board.png | Bin 0 -> 18809 bytes
.../max_capacity_moving_short_board.png | Bin 0 -> 18716 bytes
.../max_capacity_skipped_states.png | Bin 0 -> 24832 bytes
.../chapter_greedy/max_capacity_problem.md | 99 ++
.../max_product_cutting_definition.png | Bin 0 -> 13139 bytes
...max_product_cutting_greedy_calculation.png | Bin 0 -> 9098 bytes
.../max_product_cutting_greedy_infer1.png | Bin 0 -> 11998 bytes
.../max_product_cutting_greedy_infer2.png | Bin 0 -> 12221 bytes
.../max_product_cutting_problem.md | 85 ++
docs-en/chapter_greedy/summary.md | 12 +
.../hash_collision_best_worst_condition.png | Bin 0 -> 27207 bytes
docs-en/chapter_hashing/hash_algorithm.md | 357 ++++++
.../hash_table_chaining.png | Bin 0 -> 31646 bytes
.../hash_table_linear_probing.png | Bin 0 -> 23011 bytes
.../hash_table_open_addressing_deletion.png | Bin 0 -> 20077 bytes
docs-en/chapter_hashing/hash_collision.md | 108 ++
.../hash_map.assets/hash_collision.png | Bin 0 -> 32181 bytes
.../hash_map.assets/hash_function.png | Bin 0 -> 34814 bytes
.../hash_map.assets/hash_table_lookup.png | Bin 0 -> 20948 bytes
.../hash_map.assets/hash_table_reshash.png | Bin 0 -> 29598 bytes
docs-en/chapter_hashing/hash_map.md | 517 ++++++++
docs-en/chapter_hashing/index.md | 13 +
docs-en/chapter_hashing/summary.md | 47 +
.../heapify_operations_count.png | Bin 0 -> 18658 bytes
docs-en/chapter_heap/build_heap.md | 74 ++
.../heap.assets/heap_pop_step1.png | Bin 0 -> 23179 bytes
.../heap.assets/heap_pop_step10.png | Bin 0 -> 27339 bytes
.../heap.assets/heap_pop_step2.png | Bin 0 -> 23632 bytes
.../heap.assets/heap_pop_step3.png | Bin 0 -> 21523 bytes
.../heap.assets/heap_pop_step4.png | Bin 0 -> 30179 bytes
.../heap.assets/heap_pop_step5.png | Bin 0 -> 31621 bytes
.../heap.assets/heap_pop_step6.png | Bin 0 -> 32440 bytes
.../heap.assets/heap_pop_step7.png | Bin 0 -> 33780 bytes
.../heap.assets/heap_pop_step8.png | Bin 0 -> 34137 bytes
.../heap.assets/heap_pop_step9.png | Bin 0 -> 36043 bytes
.../heap.assets/heap_push_step1.png | Bin 0 -> 19986 bytes
.../heap.assets/heap_push_step2.png | Bin 0 -> 21556 bytes
.../heap.assets/heap_push_step3.png | Bin 0 -> 27115 bytes
.../heap.assets/heap_push_step4.png | Bin 0 -> 29271 bytes
.../heap.assets/heap_push_step5.png | Bin 0 -> 28498 bytes
.../heap.assets/heap_push_step6.png | Bin 0 -> 30260 bytes
.../heap.assets/heap_push_step7.png | Bin 0 -> 28822 bytes
.../heap.assets/heap_push_step8.png | Bin 0 -> 29561 bytes
.../heap.assets/heap_push_step9.png | Bin 0 -> 25654 bytes
.../heap.assets/min_heap_and_max_heap.png | Bin 0 -> 23797 bytes
.../heap.assets/representation_of_heap.png | Bin 0 -> 36697 bytes
docs-en/chapter_heap/heap.md | 465 +++++++
docs-en/chapter_heap/index.md | 13 +
docs-en/chapter_heap/summary.md | 17 +
.../top_k.assets/top_k_heap_step1.png | Bin 0 -> 16726 bytes
.../top_k.assets/top_k_heap_step2.png | Bin 0 -> 18090 bytes
.../top_k.assets/top_k_heap_step3.png | Bin 0 -> 17997 bytes
.../top_k.assets/top_k_heap_step4.png | Bin 0 -> 22788 bytes
.../top_k.assets/top_k_heap_step5.png | Bin 0 -> 23701 bytes
.../top_k.assets/top_k_heap_step6.png | Bin 0 -> 25168 bytes
.../top_k.assets/top_k_heap_step7.png | Bin 0 -> 22697 bytes
.../top_k.assets/top_k_heap_step8.png | Bin 0 -> 23735 bytes
.../top_k.assets/top_k_heap_step9.png | Bin 0 -> 18869 bytes
.../top_k.assets/top_k_sorting.png | Bin 0 -> 13138 bytes
.../top_k.assets/top_k_traversal.png | Bin 0 -> 20148 bytes
docs-en/chapter_heap/top_k.md | 71 ++
.../binary_search_dictionary_step1.png | Bin 0 -> 15329 bytes
.../binary_search_dictionary_step2.png | Bin 0 -> 18235 bytes
.../binary_search_dictionary_step3.png | Bin 0 -> 18560 bytes
.../binary_search_dictionary_step4.png | Bin 0 -> 18680 bytes
.../binary_search_dictionary_step5.png | Bin 0 -> 18401 bytes
.../greedy_change.png | Bin 0 -> 28558 bytes
.../playing_cards_sorting.png | Bin 0 -> 61005 bytes
.../algorithms_are_everywhere.md | 56 +
docs-en/chapter_introduction/index.md | 13 +
docs-en/chapter_introduction/summary.md | 9 +
.../what_is_dsa.assets/assembling_blocks.jpg | Bin 0 -> 1251615 bytes
...p_between_data_structure_and_algorithm.png | Bin 0 -> 20478 bytes
docs-en/chapter_introduction/what_is_dsa.md | 53 +
.../hello_algo_mindmap.jpg | Bin 0 -> 164629 bytes
docs-en/chapter_preface/about_the_book.md | 45 +
docs-en/chapter_preface/index.md | 13 +
.../suggestions.assets/code_md_to_repo.png | Bin 0 -> 60126 bytes
.../suggestions.assets/download_code.png | Bin 0 -> 73183 bytes
.../suggestions.assets/learning_route.png | Bin 0 -> 27834 bytes
docs-en/chapter_preface/suggestions.md | 224 ++++
docs-en/chapter_preface/summary.md | 8 +
docs-en/chapter_reference/index.md | 19 +
.../binary_search_example.png | Bin 0 -> 19304 bytes
.../binary_search_ranges.png | Bin 0 -> 27886 bytes
.../binary_search_step1.png | Bin 0 -> 18501 bytes
.../binary_search_step2.png | Bin 0 -> 16459 bytes
.../binary_search_step3.png | Bin 0 -> 19783 bytes
.../binary_search_step4.png | Bin 0 -> 15697 bytes
.../binary_search_step5.png | Bin 0 -> 20006 bytes
.../binary_search_step6.png | Bin 0 -> 15715 bytes
.../binary_search_step7.png | Bin 0 -> 17693 bytes
docs-en/chapter_searching/binary_search.md | 81 ++
.../binary_search_edge_by_element.png | Bin 0 -> 16849 bytes
.../binary_search_right_edge_by_left_edge.png | Bin 0 -> 16031 bytes
.../chapter_searching/binary_search_edge.md | 56 +
.../binary_search_insertion_example.png | Bin 0 -> 18841 bytes
.../binary_search_insertion_naive.png | Bin 0 -> 14936 bytes
.../binary_search_insertion_step1.png | Bin 0 -> 17966 bytes
.../binary_search_insertion_step2.png | Bin 0 -> 16007 bytes
.../binary_search_insertion_step3.png | Bin 0 -> 19541 bytes
.../binary_search_insertion_step4.png | Bin 0 -> 15667 bytes
.../binary_search_insertion_step5.png | Bin 0 -> 19660 bytes
.../binary_search_insertion_step6.png | Bin 0 -> 15895 bytes
.../binary_search_insertion_step7.png | Bin 0 -> 18859 bytes
.../binary_search_insertion_step8.png | Bin 0 -> 15133 bytes
.../binary_search_insertion.md | 91 ++
docs-en/chapter_searching/index.md | 13 +
.../two_sum_brute_force.png | Bin 0 -> 15890 bytes
.../two_sum_hashtable_step1.png | Bin 0 -> 17032 bytes
.../two_sum_hashtable_step2.png | Bin 0 -> 17323 bytes
.../two_sum_hashtable_step3.png | Bin 0 -> 17127 bytes
.../replace_linear_by_hashing.md | 45 +
.../searching_algorithms.png | Bin 0 -> 36794 bytes
.../searching_algorithm_revisited.md | 84 ++
docs-en/chapter_searching/summary.md | 8 +
.../bubble_operation_step1.png | Bin 0 -> 14045 bytes
.../bubble_operation_step2.png | Bin 0 -> 14869 bytes
.../bubble_operation_step3.png | Bin 0 -> 15015 bytes
.../bubble_operation_step4.png | Bin 0 -> 14810 bytes
.../bubble_operation_step5.png | Bin 0 -> 13354 bytes
.../bubble_operation_step6.png | Bin 0 -> 15296 bytes
.../bubble_operation_step7.png | Bin 0 -> 14499 bytes
.../bubble_sort_overview.png | Bin 0 -> 29466 bytes
docs-en/chapter_sorting/bubble_sort.md | 57 +
.../bucket_sort_overview.png | Bin 0 -> 45635 bytes
.../scatter_in_buckets_distribution.png | Bin 0 -> 20297 bytes
.../scatter_in_buckets_recursively.png | Bin 0 -> 37859 bytes
docs-en/chapter_sorting/bucket_sort.md | 44 +
.../counting_sort_overview.png | Bin 0 -> 32476 bytes
.../counting_sort_step1.png | Bin 0 -> 24071 bytes
.../counting_sort_step2.png | Bin 0 -> 23370 bytes
.../counting_sort_step3.png | Bin 0 -> 28400 bytes
.../counting_sort_step4.png | Bin 0 -> 28592 bytes
.../counting_sort_step5.png | Bin 0 -> 28330 bytes
.../counting_sort_step6.png | Bin 0 -> 28258 bytes
.../counting_sort_step7.png | Bin 0 -> 23854 bytes
.../counting_sort_step8.png | Bin 0 -> 19502 bytes
docs-en/chapter_sorting/counting_sort.md | 82 ++
.../heap_sort.assets/heap_sort_step1.png | Bin 0 -> 26272 bytes
.../heap_sort.assets/heap_sort_step10.png | Bin 0 -> 20464 bytes
.../heap_sort.assets/heap_sort_step11.png | Bin 0 -> 21629 bytes
.../heap_sort.assets/heap_sort_step12.png | Bin 0 -> 23666 bytes
.../heap_sort.assets/heap_sort_step2.png | Bin 0 -> 23269 bytes
.../heap_sort.assets/heap_sort_step3.png | Bin 0 -> 24349 bytes
.../heap_sort.assets/heap_sort_step4.png | Bin 0 -> 22600 bytes
.../heap_sort.assets/heap_sort_step5.png | Bin 0 -> 24314 bytes
.../heap_sort.assets/heap_sort_step6.png | Bin 0 -> 21529 bytes
.../heap_sort.assets/heap_sort_step7.png | Bin 0 -> 23538 bytes
.../heap_sort.assets/heap_sort_step8.png | Bin 0 -> 20688 bytes
.../heap_sort.assets/heap_sort_step9.png | Bin 0 -> 22969 bytes
docs-en/chapter_sorting/heap_sort.md | 73 ++
docs-en/chapter_sorting/index.md | 13 +
.../insertion_operation.png | Bin 0 -> 28959 bytes
.../insertion_sort_overview.png | Bin 0 -> 27269 bytes
docs-en/chapter_sorting/insertion_sort.md | 44 +
.../merge_sort.assets/merge_sort_overview.png | Bin 0 -> 28206 bytes
.../merge_sort.assets/merge_sort_step1.png | Bin 0 -> 10703 bytes
.../merge_sort.assets/merge_sort_step10.png | Bin 0 -> 17451 bytes
.../merge_sort.assets/merge_sort_step2.png | Bin 0 -> 11661 bytes
.../merge_sort.assets/merge_sort_step3.png | Bin 0 -> 12105 bytes
.../merge_sort.assets/merge_sort_step4.png | Bin 0 -> 12603 bytes
.../merge_sort.assets/merge_sort_step5.png | Bin 0 -> 13758 bytes
.../merge_sort.assets/merge_sort_step6.png | Bin 0 -> 14360 bytes
.../merge_sort.assets/merge_sort_step7.png | Bin 0 -> 14412 bytes
.../merge_sort.assets/merge_sort_step8.png | Bin 0 -> 14793 bytes
.../merge_sort.assets/merge_sort_step9.png | Bin 0 -> 15640 bytes
docs-en/chapter_sorting/merge_sort.md | 73 ++
.../pivot_division_step1.png | Bin 0 -> 34081 bytes
.../pivot_division_step2.png | Bin 0 -> 34244 bytes
.../pivot_division_step3.png | Bin 0 -> 34360 bytes
.../pivot_division_step4.png | Bin 0 -> 35392 bytes
.../pivot_division_step5.png | Bin 0 -> 34265 bytes
.../pivot_division_step6.png | Bin 0 -> 34521 bytes
.../pivot_division_step7.png | Bin 0 -> 34460 bytes
.../pivot_division_step8.png | Bin 0 -> 35343 bytes
.../pivot_division_step9.png | Bin 0 -> 17760 bytes
.../quick_sort.assets/quick_sort_overview.png | Bin 0 -> 28544 bytes
docs-en/chapter_sorting/quick_sort.md | 98 ++
.../radix_sort.assets/radix_sort_overview.png | Bin 0 -> 47562 bytes
docs-en/chapter_sorting/radix_sort.md | 41 +
.../selection_sort_instability.png | Bin 0 -> 18862 bytes
.../selection_sort_step1.png | Bin 0 -> 14717 bytes
.../selection_sort_step10.png | Bin 0 -> 20150 bytes
.../selection_sort_step11.png | Bin 0 -> 10733 bytes
.../selection_sort_step2.png | Bin 0 -> 19007 bytes
.../selection_sort_step3.png | Bin 0 -> 14890 bytes
.../selection_sort_step4.png | Bin 0 -> 19481 bytes
.../selection_sort_step5.png | Bin 0 -> 14276 bytes
.../selection_sort_step6.png | Bin 0 -> 19615 bytes
.../selection_sort_step7.png | Bin 0 -> 14299 bytes
.../selection_sort_step8.png | Bin 0 -> 19643 bytes
.../selection_sort_step9.png | Bin 0 -> 14122 bytes
docs-en/chapter_sorting/selection_sort.md | 58 +
.../sorting_examples.png | Bin 0 -> 18771 bytes
docs-en/chapter_sorting/sorting_algorithm.md | 48 +
.../sorting_algorithms_comparison.png | Bin 0 -> 60946 bytes
docs-en/chapter_sorting/summary.md | 49 +
.../deque.assets/array_deque.png | Bin 0 -> 29643 bytes
.../deque.assets/array_deque_pop_first.png | Bin 0 -> 23675 bytes
.../deque.assets/array_deque_pop_last.png | Bin 0 -> 22872 bytes
.../deque.assets/array_deque_push_first.png | Bin 0 -> 26752 bytes
.../deque.assets/array_deque_push_last.png | Bin 0 -> 27166 bytes
.../deque.assets/deque_operations.png | Bin 0 -> 24778 bytes
.../deque.assets/linkedlist_deque.png | Bin 0 -> 19577 bytes
.../linkedlist_deque_pop_first.png | Bin 0 -> 18461 bytes
.../linkedlist_deque_pop_last.png | Bin 0 -> 20362 bytes
.../linkedlist_deque_push_first.png | Bin 0 -> 23216 bytes
.../linkedlist_deque_push_last.png | Bin 0 -> 21808 bytes
docs-en/chapter_stack_and_queue/deque.md | 407 ++++++
docs-en/chapter_stack_and_queue/index.md | 13 +
.../queue.assets/array_queue.png | Bin 0 -> 25642 bytes
.../queue.assets/array_queue_pop.png | Bin 0 -> 22512 bytes
.../queue.assets/array_queue_push.png | Bin 0 -> 25359 bytes
.../queue.assets/linkedlist_queue.png | Bin 0 -> 17385 bytes
.../queue.assets/linkedlist_queue_pop.png | Bin 0 -> 18501 bytes
.../queue.assets/linkedlist_queue_push.png | Bin 0 -> 21087 bytes
.../queue.assets/queue_operations.png | Bin 0 -> 20799 bytes
docs-en/chapter_stack_and_queue/queue.md | 369 ++++++
.../stack.assets/array_stack.png | Bin 0 -> 18616 bytes
.../stack.assets/array_stack_pop.png | Bin 0 -> 18088 bytes
.../stack.assets/array_stack_push.png | Bin 0 -> 20132 bytes
.../stack.assets/linkedlist_stack.png | Bin 0 -> 17241 bytes
.../stack.assets/linkedlist_stack_pop.png | Bin 0 -> 18084 bytes
.../stack.assets/linkedlist_stack_push.png | Bin 0 -> 21193 bytes
.../stack.assets/stack_operations.png | Bin 0 -> 20200 bytes
docs-en/chapter_stack_and_queue/stack.md | 379 ++++++
docs-en/chapter_stack_and_queue/summary.md | 31 +
.../array_representation_binary_tree.png | Bin 0 -> 29776 bytes
...ay_representation_complete_binary_tree.png | Bin 0 -> 22117 bytes
.../array_representation_with_empty.png | Bin 0 -> 25307 bytes
.../array_representation_without_empty.png | Bin 0 -> 22394 bytes
.../array_representation_of_tree.md | 150 +++
...vltree_degradation_from_inserting_node.png | Bin 0 -> 17253 bytes
...avltree_degradation_from_removing_node.png | Bin 0 -> 18018 bytes
.../avltree_left_right_rotate.png | Bin 0 -> 24157 bytes
.../avl_tree.assets/avltree_left_rotate.png | Bin 0 -> 23963 bytes
.../avltree_left_rotate_with_grandchild.png | Bin 0 -> 27872 bytes
.../avltree_right_left_rotate.png | Bin 0 -> 24923 bytes
.../avltree_right_rotate_step1.png | Bin 0 -> 12671 bytes
.../avltree_right_rotate_step2.png | Bin 0 -> 18452 bytes
.../avltree_right_rotate_step3.png | Bin 0 -> 19969 bytes
.../avltree_right_rotate_step4.png | Bin 0 -> 24575 bytes
.../avltree_right_rotate_with_grandchild.png | Bin 0 -> 28181 bytes
.../avltree_rotation_cases.png | Bin 0 -> 24038 bytes
docs-en/chapter_tree/avl_tree.md | 337 +++++
.../binary_search_tree.png | Bin 0 -> 14423 bytes
.../bst_degradation.png | Bin 0 -> 19105 bytes
.../bst_inorder_traversal.png | Bin 0 -> 33779 bytes
.../binary_search_tree.assets/bst_insert.png | Bin 0 -> 27515 bytes
.../bst_remove_case1.png | Bin 0 -> 29245 bytes
.../bst_remove_case2.png | Bin 0 -> 29666 bytes
.../bst_remove_case3_step1.png | Bin 0 -> 18809 bytes
.../bst_remove_case3_step2.png | Bin 0 -> 27880 bytes
.../bst_remove_case3_step3.png | Bin 0 -> 30076 bytes
.../bst_remove_case3_step4.png | Bin 0 -> 32214 bytes
.../bst_search_step1.png | Bin 0 -> 16633 bytes
.../bst_search_step2.png | Bin 0 -> 17026 bytes
.../bst_search_step3.png | Bin 0 -> 17979 bytes
.../bst_search_step4.png | Bin 0 -> 18492 bytes
docs-en/chapter_tree/binary_search_tree.md | 133 ++
.../balanced_binary_tree.png | Bin 0 -> 18191 bytes
.../binary_tree_add_remove.png | Bin 0 -> 23704 bytes
.../binary_tree_best_worst_cases.png | Bin 0 -> 20009 bytes
.../binary_tree_definition.png | Bin 0 -> 26178 bytes
.../binary_tree_terminology.png | Bin 0 -> 22412 bytes
.../complete_binary_tree.png | Bin 0 -> 16853 bytes
.../binary_tree.assets/full_binary_tree.png | Bin 0 -> 13564 bytes
.../perfect_binary_tree.png | Bin 0 -> 17853 bytes
docs-en/chapter_tree/binary_tree.md | 600 +++++++++
.../binary_tree_bfs.png | Bin 0 -> 18021 bytes
.../binary_tree_dfs.png | Bin 0 -> 45905 bytes
.../preorder_step1.png | Bin 0 -> 18525 bytes
.../preorder_step10.png | Bin 0 -> 27788 bytes
.../preorder_step11.png | Bin 0 -> 29284 bytes
.../preorder_step2.png | Bin 0 -> 20082 bytes
.../preorder_step3.png | Bin 0 -> 21289 bytes
.../preorder_step4.png | Bin 0 -> 22065 bytes
.../preorder_step5.png | Bin 0 -> 23131 bytes
.../preorder_step6.png | Bin 0 -> 24440 bytes
.../preorder_step7.png | Bin 0 -> 25327 bytes
.../preorder_step8.png | Bin 0 -> 26398 bytes
.../preorder_step9.png | Bin 0 -> 26740 bytes
docs-en/chapter_tree/binary_tree_traversal.md | 89 ++
docs-en/chapter_tree/index.md | 13 +
docs-en/chapter_tree/summary.md | 54 +
docs-en/index.assets/animation.gif | Bin 0 -> 138629 bytes
.../index.assets/btn_download_code_dark.png | Bin 0 -> 2878 bytes
.../index.assets/btn_download_code_light.png | Bin 0 -> 3165 bytes
.../index.assets/btn_download_pdf_dark.png | Bin 0 -> 2283 bytes
.../index.assets/btn_download_pdf_light.png | Bin 0 -> 2526 bytes
docs-en/index.assets/btn_read_online_dark.png | Bin 0 -> 3284 bytes
.../index.assets/btn_read_online_light.png | Bin 0 -> 4061 bytes
docs-en/index.assets/comment.gif | Bin 0 -> 105171 bytes
docs-en/index.assets/conceptual_rendering.png | Bin 0 -> 83827 bytes
docs-en/index.assets/hello_algo_header.png | Bin 0 -> 211040 bytes
.../index.assets/hello_algo_mindmap_tp.png | Bin 0 -> 29153 bytes
docs-en/index.assets/running_code.gif | Bin 0 -> 130146 bytes
docs-en/index.md | 126 ++
mkdocs-en.yml | 164 +++
mkdocs.yml | 6 +-
611 files changed, 13519 insertions(+), 23 deletions(-)
create mode 100644 docs-en/assets/covers/chapter_appendix.jpg
create mode 100644 docs-en/assets/covers/chapter_array_and_linkedlist.jpg
create mode 100644 docs-en/assets/covers/chapter_backtracking.jpg
create mode 100644 docs-en/assets/covers/chapter_complexity_analysis.jpg
create mode 100644 docs-en/assets/covers/chapter_data_structure.jpg
create mode 100644 docs-en/assets/covers/chapter_divide_and_conquer.jpg
create mode 100644 docs-en/assets/covers/chapter_dynamic_programming.jpg
create mode 100644 docs-en/assets/covers/chapter_graph.jpg
create mode 100644 docs-en/assets/covers/chapter_greedy.jpg
create mode 100644 docs-en/assets/covers/chapter_hashing.jpg
create mode 100644 docs-en/assets/covers/chapter_heap.jpg
create mode 100644 docs-en/assets/covers/chapter_introduction.jpg
create mode 100644 docs-en/assets/covers/chapter_preface.jpg
create mode 100644 docs-en/assets/covers/chapter_searching.jpg
create mode 100644 docs-en/assets/covers/chapter_sorting.jpg
create mode 100644 docs-en/assets/covers/chapter_stack_and_queue.jpg
create mode 100644 docs-en/assets/covers/chapter_tree.jpg
create mode 100644 docs-en/chapter_appendix/contribution.assets/edit_markdown.png
create mode 100644 docs-en/chapter_appendix/contribution.md
create mode 100644 docs-en/chapter_appendix/index.md
create mode 100644 docs-en/chapter_appendix/installation.md
create mode 100644 docs-en/chapter_appendix/terminology.md
create mode 100644 docs-en/chapter_array_and_linkedlist/array.assets/array_definition.png
create mode 100644 docs-en/chapter_array_and_linkedlist/array.assets/array_insert_element.png
create mode 100644 docs-en/chapter_array_and_linkedlist/array.assets/array_memory_location_calculation.png
create mode 100644 docs-en/chapter_array_and_linkedlist/array.assets/array_remove_element.png
create mode 100644 docs-en/chapter_array_and_linkedlist/array.md
create mode 100644 docs-en/chapter_array_and_linkedlist/index.md
create mode 100644 docs-en/chapter_array_and_linkedlist/linked_list.assets/linkedlist_common_types.png
create mode 100644 docs-en/chapter_array_and_linkedlist/linked_list.assets/linkedlist_definition.png
create mode 100644 docs-en/chapter_array_and_linkedlist/linked_list.assets/linkedlist_insert_node.png
create mode 100644 docs-en/chapter_array_and_linkedlist/linked_list.assets/linkedlist_remove_node.png
create mode 100644 docs-en/chapter_array_and_linkedlist/linked_list.md
create mode 100644 docs-en/chapter_array_and_linkedlist/list.md
create mode 100644 docs-en/chapter_array_and_linkedlist/summary.md
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/backtrack_remove_return_or_not.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_constrained_paths.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_nodes.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step1.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step10.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step11.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step2.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step3.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step4.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step5.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step6.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step7.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step8.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.assets/preorder_find_paths_step9.png
create mode 100644 docs-en/chapter_backtracking/backtracking_algorithm.md
create mode 100644 docs-en/chapter_backtracking/index.md
create mode 100644 docs-en/chapter_backtracking/n_queens_problem.assets/n_queens_cols_diagonals.png
create mode 100644 docs-en/chapter_backtracking/n_queens_problem.assets/n_queens_constraints.png
create mode 100644 docs-en/chapter_backtracking/n_queens_problem.assets/n_queens_placing.png
create mode 100644 docs-en/chapter_backtracking/n_queens_problem.assets/solution_4_queens.png
create mode 100644 docs-en/chapter_backtracking/n_queens_problem.md
create mode 100644 docs-en/chapter_backtracking/permutations_problem.assets/permutations_i.png
create mode 100644 docs-en/chapter_backtracking/permutations_problem.assets/permutations_i_pruning.png
create mode 100644 docs-en/chapter_backtracking/permutations_problem.assets/permutations_ii.png
create mode 100644 docs-en/chapter_backtracking/permutations_problem.assets/permutations_ii_pruning.png
create mode 100644 docs-en/chapter_backtracking/permutations_problem.assets/permutations_ii_pruning_summary.png
create mode 100644 docs-en/chapter_backtracking/permutations_problem.md
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.assets/subset_sum_i.png
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.assets/subset_sum_i_naive.png
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.assets/subset_sum_i_pruning.png
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.assets/subset_sum_ii.png
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.assets/subset_sum_ii_repeat.png
create mode 100644 docs-en/chapter_backtracking/subset_sum_problem.md
create mode 100644 docs-en/chapter_backtracking/summary.md
create mode 100644 docs-en/chapter_computational_complexity/index.md
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/iteration.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/nested_iteration.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/recursion_sum.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/recursion_sum_depth.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/recursion_tree.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.assets/tail_recursion_sum.png
create mode 100644 docs-en/chapter_computational_complexity/iteration_and_recursion.md
create mode 100644 docs-en/chapter_computational_complexity/performance_evaluation.md
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.assets/space_complexity_common_types.png
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.assets/space_complexity_exponential.png
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.assets/space_complexity_recursive_linear.png
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.assets/space_complexity_recursive_quadratic.png
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.assets/space_types.png
create mode 100644 docs-en/chapter_computational_complexity/space_complexity.md
create mode 100644 docs-en/chapter_computational_complexity/summary.md
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/asymptotic_upper_bound.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_common_types.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_constant_linear_quadratic.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_exponential.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_factorial.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic_linear.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.assets/time_complexity_simple_example.png
create mode 100644 docs-en/chapter_computational_complexity/time_complexity.md
create mode 100644 docs-en/chapter_data_structure/basic_data_types.md
create mode 100644 docs-en/chapter_data_structure/character_encoding.assets/ascii_table.png
create mode 100644 docs-en/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png
create mode 100644 docs-en/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png
create mode 100644 docs-en/chapter_data_structure/character_encoding.md
create mode 100644 docs-en/chapter_data_structure/classification_of_data_structure.assets/classification_logic_structure.png
create mode 100644 docs-en/chapter_data_structure/classification_of_data_structure.assets/classification_phisical_structure.png
create mode 100644 docs-en/chapter_data_structure/classification_of_data_structure.assets/computer_memory_location.png
create mode 100644 docs-en/chapter_data_structure/classification_of_data_structure.md
create mode 100644 docs-en/chapter_data_structure/index.md
create mode 100644 docs-en/chapter_data_structure/number_encoding.assets/1s_2s_complement.png
create mode 100644 docs-en/chapter_data_structure/number_encoding.assets/ieee_754_float.png
create mode 100644 docs-en/chapter_data_structure/number_encoding.md
create mode 100644 docs-en/chapter_data_structure/summary.md
create mode 100644 docs-en/chapter_divide_and_conquer/binary_search_recur.assets/binary_search_recur.png
create mode 100644 docs-en/chapter_divide_and_conquer/binary_search_recur.md
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_division_pointers.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_example.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/build_tree_preorder_inorder_division.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_overall.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step1.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step2.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step3.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step4.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step5.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step6.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step7.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step8.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.assets/built_tree_step9.png
create mode 100644 docs-en/chapter_divide_and_conquer/build_binary_tree_problem.md
create mode 100644 docs-en/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_bubble_sort.png
create mode 100644 docs-en/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_merge_sort.png
create mode 100644 docs-en/chapter_divide_and_conquer/divide_and_conquer.assets/divide_and_conquer_parallel_computing.png
create mode 100644 docs-en/chapter_divide_and_conquer/divide_and_conquer.md
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_divide_and_conquer.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_example.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step1.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f1_step2.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step1.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step2.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step3.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f2_step4.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step1.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step2.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step3.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_f3_step4.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.assets/hanota_recursive_tree.png
create mode 100644 docs-en/chapter_divide_and_conquer/hanota_problem.md
create mode 100644 docs-en/chapter_divide_and_conquer/index.md
create mode 100644 docs-en/chapter_divide_and_conquer/summary.md
create mode 100644 docs-en/chapter_dynamic_programming/dp_problem_features.assets/climbing_stairs_constraint_example.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_problem_features.assets/climbing_stairs_constraint_state_transfer.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_problem_features.assets/min_cost_cs_dp.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_problem_features.assets/min_cost_cs_example.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_problem_features.md
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dfs.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dfs_mem.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step10.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step11.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step12.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step7.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step8.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_dp_step9.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_example.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_solution_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_solution_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.assets/min_path_sum_solution_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/dp_solution_pipeline.md
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_decision_tree.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step10.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step11.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step12.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step13.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step14.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step15.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step7.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step8.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_dp_step9.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_example.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.assets/edit_distance_state_transfer.png
create mode 100644 docs-en/chapter_dynamic_programming/edit_distance_problem.md
create mode 100644 docs-en/chapter_dynamic_programming/index.md
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.assets/climbing_stairs_dfs_memo_tree.png
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.assets/climbing_stairs_dfs_tree.png
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.assets/climbing_stairs_dp.png
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.assets/climbing_stairs_example.png
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.assets/climbing_stairs_state_transfer.png
create mode 100644 docs-en/chapter_dynamic_programming/intro_to_dynamic_programming.md
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dfs.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dfs_mem.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_comp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step10.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step11.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step12.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step13.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step14.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step7.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step8.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_dp_step9.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.assets/knapsack_example.png
create mode 100644 docs-en/chapter_dynamic_programming/knapsack_problem.md
create mode 100644 docs-en/chapter_dynamic_programming/summary.md
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step10.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step11.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step12.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step13.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step14.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step15.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step7.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step8.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_dp_step9.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_example.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/coin_change_ii_example.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step1.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step2.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step3.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step4.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step5.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_dp_comp_step6.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.assets/unbounded_knapsack_example.png
create mode 100644 docs-en/chapter_dynamic_programming/unbounded_knapsack_problem.md
create mode 100644 docs-en/chapter_graph/graph.assets/adjacency_list.png
create mode 100644 docs-en/chapter_graph/graph.assets/adjacency_matrix.png
create mode 100644 docs-en/chapter_graph/graph.assets/connected_graph.png
create mode 100644 docs-en/chapter_graph/graph.assets/directed_graph.png
create mode 100644 docs-en/chapter_graph/graph.assets/linkedlist_tree_graph.png
create mode 100644 docs-en/chapter_graph/graph.assets/weighted_graph.png
create mode 100644 docs-en/chapter_graph/graph.md
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_list_add_edge.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_list_add_vertex.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_list_initialization.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_list_remove_edge.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_list_remove_vertex.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_matrix_add_edge.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_matrix_add_vertex.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_matrix_initialization.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_matrix_remove_edge.png
create mode 100644 docs-en/chapter_graph/graph_operations.assets/adjacency_matrix_remove_vertex.png
create mode 100644 docs-en/chapter_graph/graph_operations.md
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step1.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step10.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step11.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step2.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step3.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step4.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step5.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step6.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step7.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step8.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_bfs_step9.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step1.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step10.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step11.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step2.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step3.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step4.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step5.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step6.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step7.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step8.png
create mode 100644 docs-en/chapter_graph/graph_traversal.assets/graph_dfs_step9.png
create mode 100644 docs-en/chapter_graph/graph_traversal.md
create mode 100644 docs-en/chapter_graph/index.md
create mode 100644 docs-en/chapter_graph/summary.md
create mode 100644 docs-en/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_area_chart.png
create mode 100644 docs-en/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_example.png
create mode 100644 docs-en/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_greedy_strategy.png
create mode 100644 docs-en/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_unit_value.png
create mode 100644 docs-en/chapter_greedy/fractional_knapsack_problem.md
create mode 100644 docs-en/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_strategy.png
create mode 100644 docs-en/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_vs_dp.png
create mode 100644 docs-en/chapter_greedy/greedy_algorithm.md
create mode 100644 docs-en/chapter_greedy/index.md
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_example.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step1.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step2.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step3.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step4.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step5.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step6.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step7.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step8.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step9.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_initial_state.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_long_board.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_short_board.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.assets/max_capacity_skipped_states.png
create mode 100644 docs-en/chapter_greedy/max_capacity_problem.md
create mode 100644 docs-en/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png
create mode 100644 docs-en/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_calculation.png
create mode 100644 docs-en/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png
create mode 100644 docs-en/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png
create mode 100644 docs-en/chapter_greedy/max_product_cutting_problem.md
create mode 100644 docs-en/chapter_greedy/summary.md
create mode 100644 docs-en/chapter_hashing/hash_algorithm.assets/hash_collision_best_worst_condition.png
create mode 100644 docs-en/chapter_hashing/hash_algorithm.md
create mode 100644 docs-en/chapter_hashing/hash_collision.assets/hash_table_chaining.png
create mode 100644 docs-en/chapter_hashing/hash_collision.assets/hash_table_linear_probing.png
create mode 100644 docs-en/chapter_hashing/hash_collision.assets/hash_table_open_addressing_deletion.png
create mode 100644 docs-en/chapter_hashing/hash_collision.md
create mode 100644 docs-en/chapter_hashing/hash_map.assets/hash_collision.png
create mode 100644 docs-en/chapter_hashing/hash_map.assets/hash_function.png
create mode 100644 docs-en/chapter_hashing/hash_map.assets/hash_table_lookup.png
create mode 100644 docs-en/chapter_hashing/hash_map.assets/hash_table_reshash.png
create mode 100644 docs-en/chapter_hashing/hash_map.md
create mode 100644 docs-en/chapter_hashing/index.md
create mode 100644 docs-en/chapter_hashing/summary.md
create mode 100644 docs-en/chapter_heap/build_heap.assets/heapify_operations_count.png
create mode 100644 docs-en/chapter_heap/build_heap.md
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step1.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step10.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step2.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step3.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step4.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step5.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step6.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step7.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step8.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_pop_step9.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step1.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step2.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step3.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step4.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step5.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step6.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step7.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step8.png
create mode 100644 docs-en/chapter_heap/heap.assets/heap_push_step9.png
create mode 100644 docs-en/chapter_heap/heap.assets/min_heap_and_max_heap.png
create mode 100644 docs-en/chapter_heap/heap.assets/representation_of_heap.png
create mode 100644 docs-en/chapter_heap/heap.md
create mode 100644 docs-en/chapter_heap/index.md
create mode 100644 docs-en/chapter_heap/summary.md
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step1.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step2.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step3.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step4.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step5.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step6.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step7.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step8.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_heap_step9.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_sorting.png
create mode 100644 docs-en/chapter_heap/top_k.assets/top_k_traversal.png
create mode 100644 docs-en/chapter_heap/top_k.md
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step1.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step2.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step3.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step4.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step5.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/greedy_change.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.assets/playing_cards_sorting.png
create mode 100644 docs-en/chapter_introduction/algorithms_are_everywhere.md
create mode 100644 docs-en/chapter_introduction/index.md
create mode 100644 docs-en/chapter_introduction/summary.md
create mode 100644 docs-en/chapter_introduction/what_is_dsa.assets/assembling_blocks.jpg
create mode 100644 docs-en/chapter_introduction/what_is_dsa.assets/relationship_between_data_structure_and_algorithm.png
create mode 100644 docs-en/chapter_introduction/what_is_dsa.md
create mode 100644 docs-en/chapter_preface/about_the_book.assets/hello_algo_mindmap.jpg
create mode 100644 docs-en/chapter_preface/about_the_book.md
create mode 100644 docs-en/chapter_preface/index.md
create mode 100644 docs-en/chapter_preface/suggestions.assets/code_md_to_repo.png
create mode 100644 docs-en/chapter_preface/suggestions.assets/download_code.png
create mode 100644 docs-en/chapter_preface/suggestions.assets/learning_route.png
create mode 100644 docs-en/chapter_preface/suggestions.md
create mode 100644 docs-en/chapter_preface/summary.md
create mode 100644 docs-en/chapter_reference/index.md
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_example.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_ranges.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step1.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step2.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step3.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step4.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step5.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step6.png
create mode 100644 docs-en/chapter_searching/binary_search.assets/binary_search_step7.png
create mode 100644 docs-en/chapter_searching/binary_search.md
create mode 100644 docs-en/chapter_searching/binary_search_edge.assets/binary_search_edge_by_element.png
create mode 100644 docs-en/chapter_searching/binary_search_edge.assets/binary_search_right_edge_by_left_edge.png
create mode 100644 docs-en/chapter_searching/binary_search_edge.md
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_example.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_naive.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step1.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step2.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step3.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step4.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step5.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step6.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step7.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.assets/binary_search_insertion_step8.png
create mode 100644 docs-en/chapter_searching/binary_search_insertion.md
create mode 100644 docs-en/chapter_searching/index.md
create mode 100644 docs-en/chapter_searching/replace_linear_by_hashing.assets/two_sum_brute_force.png
create mode 100644 docs-en/chapter_searching/replace_linear_by_hashing.assets/two_sum_hashtable_step1.png
create mode 100644 docs-en/chapter_searching/replace_linear_by_hashing.assets/two_sum_hashtable_step2.png
create mode 100644 docs-en/chapter_searching/replace_linear_by_hashing.assets/two_sum_hashtable_step3.png
create mode 100644 docs-en/chapter_searching/replace_linear_by_hashing.md
create mode 100644 docs-en/chapter_searching/searching_algorithm_revisited.assets/searching_algorithms.png
create mode 100644 docs-en/chapter_searching/searching_algorithm_revisited.md
create mode 100644 docs-en/chapter_searching/summary.md
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step1.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step2.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step3.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step4.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step5.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step6.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_operation_step7.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.assets/bubble_sort_overview.png
create mode 100644 docs-en/chapter_sorting/bubble_sort.md
create mode 100644 docs-en/chapter_sorting/bucket_sort.assets/bucket_sort_overview.png
create mode 100644 docs-en/chapter_sorting/bucket_sort.assets/scatter_in_buckets_distribution.png
create mode 100644 docs-en/chapter_sorting/bucket_sort.assets/scatter_in_buckets_recursively.png
create mode 100644 docs-en/chapter_sorting/bucket_sort.md
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_overview.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step1.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step2.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step3.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step4.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step5.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step6.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step7.png
create mode 100644 docs-en/chapter_sorting/counting_sort.assets/counting_sort_step8.png
create mode 100644 docs-en/chapter_sorting/counting_sort.md
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step1.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step10.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step11.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step12.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step2.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step3.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step4.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step5.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step6.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step7.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step8.png
create mode 100644 docs-en/chapter_sorting/heap_sort.assets/heap_sort_step9.png
create mode 100644 docs-en/chapter_sorting/heap_sort.md
create mode 100644 docs-en/chapter_sorting/index.md
create mode 100644 docs-en/chapter_sorting/insertion_sort.assets/insertion_operation.png
create mode 100644 docs-en/chapter_sorting/insertion_sort.assets/insertion_sort_overview.png
create mode 100644 docs-en/chapter_sorting/insertion_sort.md
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_overview.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step1.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step10.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step2.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step3.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step4.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step5.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step6.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step7.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step8.png
create mode 100644 docs-en/chapter_sorting/merge_sort.assets/merge_sort_step9.png
create mode 100644 docs-en/chapter_sorting/merge_sort.md
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step1.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step2.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step3.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step4.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step5.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step6.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step7.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step8.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/pivot_division_step9.png
create mode 100644 docs-en/chapter_sorting/quick_sort.assets/quick_sort_overview.png
create mode 100644 docs-en/chapter_sorting/quick_sort.md
create mode 100644 docs-en/chapter_sorting/radix_sort.assets/radix_sort_overview.png
create mode 100644 docs-en/chapter_sorting/radix_sort.md
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_instability.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step1.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step10.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step11.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step2.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step3.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step4.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step5.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step6.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step7.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step8.png
create mode 100644 docs-en/chapter_sorting/selection_sort.assets/selection_sort_step9.png
create mode 100644 docs-en/chapter_sorting/selection_sort.md
create mode 100644 docs-en/chapter_sorting/sorting_algorithm.assets/sorting_examples.png
create mode 100644 docs-en/chapter_sorting/sorting_algorithm.md
create mode 100644 docs-en/chapter_sorting/summary.assets/sorting_algorithms_comparison.png
create mode 100644 docs-en/chapter_sorting/summary.md
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_first.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_last.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_first.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_last.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/deque_operations.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_first.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_last.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_first.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_last.png
create mode 100644 docs-en/chapter_stack_and_queue/deque.md
create mode 100644 docs-en/chapter_stack_and_queue/index.md
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue_pop.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue_push.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_pop.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_push.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/queue_operations.png
create mode 100644 docs-en/chapter_stack_and_queue/queue.md
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack_pop.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack_push.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_pop.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_push.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/stack_operations.png
create mode 100644 docs-en/chapter_stack_and_queue/stack.md
create mode 100644 docs-en/chapter_stack_and_queue/summary.md
create mode 100644 docs-en/chapter_tree/array_representation_of_tree.assets/array_representation_binary_tree.png
create mode 100644 docs-en/chapter_tree/array_representation_of_tree.assets/array_representation_complete_binary_tree.png
create mode 100644 docs-en/chapter_tree/array_representation_of_tree.assets/array_representation_with_empty.png
create mode 100644 docs-en/chapter_tree/array_representation_of_tree.assets/array_representation_without_empty.png
create mode 100644 docs-en/chapter_tree/array_representation_of_tree.md
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_degradation_from_inserting_node.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_degradation_from_removing_node.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_left_right_rotate.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_left_rotate.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_left_rotate_with_grandchild.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_left_rotate.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_rotate_step1.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_rotate_step2.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_rotate_step3.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_rotate_step4.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_right_rotate_with_grandchild.png
create mode 100644 docs-en/chapter_tree/avl_tree.assets/avltree_rotation_cases.png
create mode 100644 docs-en/chapter_tree/avl_tree.md
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/binary_search_tree.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_degradation.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_inorder_traversal.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_insert.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case1.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case2.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case3_step1.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case3_step2.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case3_step3.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_remove_case3_step4.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_search_step1.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_search_step2.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_search_step3.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.assets/bst_search_step4.png
create mode 100644 docs-en/chapter_tree/binary_search_tree.md
create mode 100644 docs-en/chapter_tree/binary_tree.assets/balanced_binary_tree.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/binary_tree_add_remove.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/binary_tree_best_worst_cases.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/binary_tree_definition.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/binary_tree_terminology.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/complete_binary_tree.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/full_binary_tree.png
create mode 100644 docs-en/chapter_tree/binary_tree.assets/perfect_binary_tree.png
create mode 100644 docs-en/chapter_tree/binary_tree.md
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/binary_tree_bfs.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/binary_tree_dfs.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step1.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step10.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step11.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step2.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step3.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step4.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step5.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step6.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step7.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step8.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.assets/preorder_step9.png
create mode 100644 docs-en/chapter_tree/binary_tree_traversal.md
create mode 100644 docs-en/chapter_tree/index.md
create mode 100644 docs-en/chapter_tree/summary.md
create mode 100644 docs-en/index.assets/animation.gif
create mode 100644 docs-en/index.assets/btn_download_code_dark.png
create mode 100644 docs-en/index.assets/btn_download_code_light.png
create mode 100644 docs-en/index.assets/btn_download_pdf_dark.png
create mode 100644 docs-en/index.assets/btn_download_pdf_light.png
create mode 100644 docs-en/index.assets/btn_read_online_dark.png
create mode 100644 docs-en/index.assets/btn_read_online_light.png
create mode 100644 docs-en/index.assets/comment.gif
create mode 100644 docs-en/index.assets/conceptual_rendering.png
create mode 100644 docs-en/index.assets/hello_algo_header.png
create mode 100644 docs-en/index.assets/hello_algo_mindmap_tp.png
create mode 100644 docs-en/index.assets/running_code.gif
create mode 100644 docs-en/index.md
create mode 100644 mkdocs-en.yml
diff --git a/README.md b/README.md
index cbd1526006..ec1587ef69 100644
--- a/README.md
+++ b/README.md
@@ -5,9 +5,9 @@
-
+
- 动画图解、一键运行的数据结构与算法教程
+ Data Structures and Algorithms: Animated Illutrations and Off-the-Shelf Code
@@ -24,37 +24,37 @@
-## 关于本书
+## The Book
-本项目旨在打造一本开源免费、新手友好的数据结构与算法入门教程。
+This project aims to create an open-source, free, and beginner-friendly tutorial on data structures and algorithms.
-- 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。
-- 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。
-- 鼓励读者互助学习,提问与评论通常可在两日内得到回复。
+- The book uses animated illustrations to make the content clear, easy to understand, and provides a smooth learning curve, guiding beginners through the knowledge map of data structures and algorithms.
+- The source code can be run with a single click, helping readers improve their programming skills, understand the working principles of algorithms, and the underlying implementation of data structures.
+- We encourage readers to learn together, ask questions, and comment. Replies are usually received within two days.
-若本书对您有所帮助,请在页面右上角点个 Star :star: 支持一下,谢谢!
+If this book is helpful to you, please give it a Star :star: in the top right corner of the page to show your support. Thank you!
-## 推荐语
+## Praise
-> “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。”
+> “An accessible and easy-to-understand introduction to data structures and algorithms, guiding readers to learn actively and hands-on. Highly recommended for beginners in algorithms.”
>
-> **—— 邓俊辉,清华大学计算机系教授**
+> **—— Junhui Deng, Professor of Computer Science at Tsinghua University**
-> “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!”
+> “If I had 'Hello Algorithm' when I was learning data structures and algorithms, it would have been 10 times easier!”
>
-> **—— 李沐,亚马逊资深首席科学家**
+> **—— Mu Li, Senior Principal Scientist at Amazon**
-## 贡献
+## Contribution
-本开源书仍在持续更新之中,欢迎您参与本项目,一同为读者提供更优质的学习内容。
+This open-source book is continuously being updated, and we welcome your participation in this project to provide better learning content for our readers.
-- [内容修正](https://www.hello-algo.com/chapter_appendix/contribution/):请您协助修正或在评论区指出语法错误、内容缺失、文字歧义、无效链接或代码 bug 等问题。
-- [代码转译](https://github.com/krahets/hello-algo/issues/15):期待您贡献各种语言代码,现已支持 Python, Java, C++, Go, JavaScript 等 11 门编程语言。
-- [整书翻译](https://github.com/krahets/hello-algo/tree/en):诚邀您加入我们的中译英小组,成员主要来自计算机相关专业、英语专业和英文母语者。
+- [Content Correction](https://www.hello-algo.com/chapter_appendix/contribution/): Please help us correct or point out issues in the comments section such as grammatical errors, missing content, ambiguities, invalid links, or code bugs.
+- [Code Translation](https://github.com/krahets/hello-algo/issues/15): We look forward to your contributions of code in various programming languages. We currently support Python, Java, C++, Go, JavaScript, and 11 other programming languages.
+- [Whole Book Translation](https://github.com/krahets/hello-algo/tree/en): We invite you to join our Chinese-to-English translation team. Members are mainly from computer-related majors, English majors, and native English speakers.
-欢迎您提出宝贵意见和建议,如有任何问题请提交 Issues 或微信联系 `krahets-jyd` 。
+We welcome your valuable suggestions and feedback. If you have any questions, please submit Issues or contact us via WeChat at `krahets-jyd`.
-感谢本开源书的每一位撰稿人,是他们的无私奉献让这本书变得更好,他们是:
+Thanks to each contributor of this open-source book. It is their selfless dedication that has made this book better. They are:
diff --git a/docs-en/assets/covers/chapter_appendix.jpg b/docs-en/assets/covers/chapter_appendix.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f455b97caaab4835c6ae4d98c4471547721263b7
GIT binary patch
literal 116050
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