Commit 435232c3dda9a8736f3c370777e1559a002a7b9b

Authored by bjeanlou
1 parent 395ede86

update4 withHash

Showing 2 changed files with 21 additions and 12 deletions   Show diff stats
... ... @@ -27,6 +27,8 @@ void delete_tree(tree t){
27 27  
28 28  
29 29  
  30 +
  31 +
30 32 //Casual functions
31 33 bool is_empty(tree t){
32 34 return t==NULL;
... ... @@ -51,26 +53,36 @@ int hash(char c){
51 53  
52 54  
53 55  
54   -//
55   -bool addto_tree(tree t,string s,unsigned int index,bool isIn){
56   - //recursive, when called : set isIn to true
  56 +
  57 +
  58 +//loading functions
  59 +bool addto_tree(tree t,string s){
  60 + //recursive, when called : set isIn to true, and reset index
57 61 //return wether s is already in t or not
  62 + bool ret;
58 63 if(s[0]=='\0'){
  64 + ret=t->isEnd;
59 65 t->isEnd=true;
60   - return isIn;
  66 + return ret;
  67 + }
  68 + if(t->next[hash(s[0])]==NULL){
  69 + t->next[hash(s[0])]=make_node(s[0],false);
  70 + addto_tree2(t->next[hash(s[0])],s+1);
  71 + return false;
61 72 }
62   - if(t->next[hash(s[0])]==NULL)
63   - t->next[hash(s[0])]=make_node(s[0],false);
  73 + else
  74 + addto_tree(t->next[hash(s[0])],s+1,isIn);
64 75 }
65 76 void addto_tree2(tree t,string s){
66   - //faster than addto_tree, used when it is knowned the word is not yet in dictionnary
  77 + //faster than addto_treeused when it is knowned the word is not yet in dictionnary
67 78 if(s[0]=='\0'){
68 79 t->isEnd=true;
69 80 return;
70 81 }
71 82 t->next[hash(s[0])]=make_node(s[0],false);
72   - addto_tree2(t->next[hash(s[0])],
  83 + addto_tree2(t->next[hash(s[0])],s+1);
73 84 }
  85 +
74 86 void loadfrom_file(tree,FILE*){}
75 87 void loadfrom_keyboard(tree){}
76 88  
... ...
... ... @@ -24,14 +24,11 @@ void delete_tree(tree);
24 24 bool is_empty(tree);
25 25 bool is_end(tree);
26 26 bool is_followed(tree);//tells if tree has following letters
  27 +int hash(char);
27 28  
28 29 void addto_tree(tree,char*,int);
29 30 void loadfrom_file(tree,FILE*);
30 31 void loadfrom_keyboard(tree);
31 32  
32 33  
33   -int hash(char);
34   -
35   -
36   -
37 34 #endif //TREEH_H
... ...