2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
原题链接🔗:Implementum Trie (praepositionem ligno)
difficultas: Medium⭐️⭐️
Trie (proponitur ut "experire") vel praeposita arbore Estne fabrica data arbor ad efficaciter reponendas et recuperare claves in filo dataset. Haec notitia compages admodum paucos usus casus habet, ut auto- completionem et orthographiam.
Quaeso efficiendum Tria classis:
Trie()
Initialize praepositionem obiecti.void insert(String word)
Filum inserere in praeposita arboreword
。boolean search(String word)
si filumword
In praeposita arbore, revertere true
(i.e. ante retrieval inscriptum est); false
。boolean startsWith(String prefix)
Si filum prius inserta est word
Una praefixa est prefix
, Redi true
;false
。Exemplum:
intrare
trie inserere quaerere quaerere incipit inserere quaerere
[p.
output
[nullus, nulla, verum, falsum, verum, nullum, verum]
explicare
Trie = new Trie ();
trie.insert("pomum");
trie.search("pomum");
trie.search("app");
trie.startsWith("app");
trie.insert("app");
trie.search("app");
innuere;
Praefixum arbor, quae arbor Trie (pronuntiata "tendo" appellata est, est notitia compages ad chordarum collectiones adhibita, quae celeriter retrievalem et chordarum insertionem concedit, ac etiam interrogationes chordarum praefixarum. Singulis nodi praepositionis arboris praepositionem chordae repraesentat, et filii cuiusque nodi omnes extensiones possibilis praepositionis quae unam characterem adiungunt, repraesentant.
- Characteres praepositionis arbores:
- spatium efficientiam: collectiones chordarum cum praefixis communibus multis, praepositiones arbores spatium repositionis servare possunt.
- tempus efficientiam: Tempus complexionis insertionis et operationum quaerendi plerumque O(m), ubi m est longitudo chordae.
- dynamic collection: Praefixum arbor dynamice potest chordas inserere et delere, quae apta est missionibus quae crebris updates requirunt.
- Basic operationes praepositionis arbores:
- inserta: Filum inseres in arborem, a node radice incipiens et charactere descendens charactere.
- Quaerere: Quaere num chorda in arbore existat, a nodo radicis incipiens et charactere descendente, charactere noto si puer nodi characteris non est, quaestio deficit.
- Praefixum quaerere: SCUTULATUM num sit aliqua chorda praefixa chorda quadam, operationi quaerenti similis, sed vexillum extremum nodi ultimi notare non oportet.
- delere: Filum ex arbore delendo requirit recursively nodi delendo, dum cavemus communem praepositionem nodi aliorum chordarum deletam non esse.
- Application missiones praepositionis arboris:
- autocomplete: In inquisitione machinarum vel editorum textuum, cito complementum praebent suggestiones secundum praefixiones ab usuario initas.
- Orthographiae: Impediunt num verbum ab utente initum recte conscriptum sit ac recte suggestiones orthographiam praebet.
- IP routing: In retis, longissima praepositionis adaptatio adhibenda est ad tramitem fasciculi excitandam determinare.
- Gene series analysis: In bioinformaticis adhibitis ut cito inserere et generum sequentia recuperare.
Trie (arbor praepositionis) est arbor data compages pro celeriter retrievali clavium in filo dataset. Est peculiaris quaedam arbor, in qua uterque nodi characterem repraesentat, et semita ab radice ad nodi chorda repraesentat. Tree arbores saepe ad functiones efficiendas ut automatice peractae et orthographiae inhibitae sunt.
Hi sunt gradus fundamentales et notiones problematum solvendorum ad Arborem Triam exsequendam;
Define Trie lymphaticorum:
- Quaelibet Tria nodi solet praefinitum characterum vel valorem Boolean continere ad finem verbi repraesentandum, et indices ad nodos infantum.
Initialize Trie:
- Nodi radicem crea in quibus nullas notas contineat sed punctum omnium verborum inservit.
inserere operandi:
- Proficiscens a nodo radicis, cuique character in chorda inserenda est;
- Si puer nodi respondet characteri non est, novum puerum nodi crea.
- Movere nodi hodiernam ad nodi infantis respondentem.
Operatio Quaerere:
- Proficiscens a nodo radicis, cuiuslibet characteris in chorda quaerendi vis:
- Si puer nodi characteri correspondens existit, perscrutare.
- Si non existit, defectus inquisitionis redditur.
Praefixum quaerere:
- Similia quaerenti operanti, sed tantum curat num praepositio chordae exstet.
Operatio Delete(libitum):
- Facultatem exsequendi verba delere prout opus est, quae nodos delendi plerumque implicat, ac narrationem nodi tractantem requirit.
Autocomplete functionem(libitum):
- Praeposita praepositione, omnes chordas ab ea praepositione incipientes redde.
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
class Trie {
private:
vector<Trie*> children;
bool isEnd;
Trie* searchPrefix(string prefix) {
Trie* node = this;
for (char ch : prefix) {
ch -= 'a';
if (node->children[ch] == nullptr) {
return nullptr;
}
node = node->children[ch];
}
return node;
}
public:
Trie() : children(26), isEnd(false) {}
void insert(string word) {
Trie* node = this;
for (char ch : word) {
ch -= 'a';
if (node->children[ch] == nullptr) {
node->children[ch] = new Trie();
}
node = node->children[ch];
}
node->isEnd = true;
}
bool search(string word) {
Trie* node = this->searchPrefix(word);
return node != nullptr && node->isEnd;
}
bool startsWith(string prefix) {
return this->searchPrefix(prefix) != nullptr;
}
};
int main() {
Trie trie;
trie.insert("apple");
std::cout << trie.search("apple") << std::endl; // 返回 1
std::cout << trie.search("app") << std::endl; // 返回 0
std::cout << trie.startsWith("app") << std::endl; // 返回 1
return 0;
}
1
0
1