diff --git a/README.md b/README.md
index a10dd2f875..4db897c7f6 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Contents
Preface
--------
-Some people did not see their works published, like Fermat and Galois; Some people refused to publish any 'imperfect' works despite they had already been great and important (at least from our view point), like Gauss; Some people lost some of their works in fires or wars, like Riemann. We owe Samuel Fermat, who collected his father's notes and mails, published a special edition of _Arithmetica, augmented with Fermat's comments_; We owe Liouville, who re-discovered and published Galois' papers in _Journal de Mathématiques Pures et Appliquées_; We owe Dedekind, who collected the burnt notebook from Mrs Riemann after her husband's early death. We appreciate those publishers who save, protect, and spread human knowledge no matter it's profitable or not (in terms of money). The development of technology and internet greatly change the way that people write, log, edit, and publish things. I was able to write and share about elementary functional algorithms and data structures online from 2009. It was accumulated to a draft book by 2015, and was published in 2017 in Chinese.
+Some people did not see their works published, like Fermat and Galois; Some people refused to publish any 'imperfect' works despite they had already been great and important (at least from our view point), like Gauss; Some people lost some of their works in fires or wars, like Riemann. We owe Samuel Fermat, who collected his father's notes and mails, published a special edition of _Arithmetica, augmented with Fermat's comments_; We owe Liouville, who re-discovered and published Galois' papers in _Journal de Mathématiques Pures et Appliquées_; We owe Dedekind, who collected the burnt notebook from Mrs Riemann after her husband's early death. We appreciate those publishers who save, protect, and spread human knowledge no matter it's profitable or not (in terms of money). The development of technology and internet greatly changes the way that people write, log, edit, and publish things. I was able to write and share about elementary functional algorithms and data structures online from 2009. It was accumulated to a draft book by 2015, and was published in 2017 in Chinese.
I always think I am so lucky compare to the people in the past. It's impossible to make this happen before, while there are plenty of wonderful works in this domain yet to be published. Thanks to the editors, the publisher, and every reader. I collected the feedback, questions, and comments, started to re-write the book from the end of 2020, and completed a new edition by May 2023. The main changes are:
diff --git a/datastruct/tree/trie/img/trie.drawio b/datastruct/tree/trie/img/trie.drawio
index ffe98d6057..7e83e8cd36 100644
--- a/datastruct/tree/trie/img/trie.drawio
+++ b/datastruct/tree/trie/img/trie.drawio
@@ -1 +1,890 @@
-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
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/datastruct/tree/trie/img/trie.pdf b/datastruct/tree/trie/img/trie.pdf
index 8ba571bf92..65fd4e0883 100644
Binary files a/datastruct/tree/trie/img/trie.pdf and b/datastruct/tree/trie/img/trie.pdf differ
diff --git a/others/preface/preface-en.tex b/others/preface/preface-en.tex
index a540e4065e..f3ea8b23e7 100644
--- a/others/preface/preface-en.tex
+++ b/others/preface/preface-en.tex
@@ -25,7 +25,7 @@ \chapter*{Preface to the second edition}
\phantomsection % so hyperref creates bookmarks
\addcontentsline{toc}{chapter}{Preface to the second edition}
-Some people did not see their works published, like Fermat and Galois; Some people refused to publish any \enquote{imperfect} works despite they had already been great and important (at least from our view point), like Gauss; Some people lost some of their works in fires or wars, like Riemann. We owe Samuel Fermat, who collected his father's notes and mails, published a special edition of {\em Arithmetica, augmented with Fermat's comments}; We owe Liouville, who re-discovered and published Galois' papers in {\em Journal de Mathématiques Pures et Appliquées}; We owe Dedekind, who collected the burnt notebook from Mrs Riemann after her husband's early death. We appreciate those publishers who save, protect, and spread human knowledge no matter it's profitable or not (in terms of money). The development of technology and internet greatly change the way that people write, log, edit, and publish things. I was able to write and share about elementary functional algorithms and data structures online from 2009. It was accumulated to a draft book by 2015, and was published in 2017 in Chinese.
+Some people did not see their works published, like Fermat and Galois; Some people refused to publish any \enquote{imperfect} works despite they had already been great and important (at least from our view point), like Gauss; Some people lost some of their works in fires or wars, like Riemann. We owe Samuel Fermat, who collected his father's notes and mails, published a special edition of {\em Arithmetica, augmented with Fermat's comments}; We owe Liouville, who re-discovered and published Galois' papers in {\em Journal de Mathématiques Pures et Appliquées}; We owe Dedekind, who collected the burnt notebook from Mrs Riemann after her husband's early death. We appreciate those publishers who save, protect, and spread human knowledge no matter it's profitable or not (in terms of money). The development of technology and internet greatly changes the way that people write, log, edit, and publish things. I was able to write and share about elementary functional algorithms and data structures online from 2009. It was accumulated to a draft book by 2015, and was published in 2017 in Chinese.
I always think I am so lucky compare to the people in the past. It's impossible to make this happen before, while there are plenty of wonderful works in this domain yet to be published. Thanks to the editors, the publisher, and every reader. I collected the feedback, questions, and comments, started to re-write the book from the end of 2020, and completed a new edition by May 2023. The main changes are: