Commit 2a10535ab03b934ac46d25a4ba02d60986294741
1 parent
500d264d
end Lesson 1
Showing
4 changed files
with
73 additions
and
9 deletions
Show diff stats
Slist.c
1 | 1 | #include "Slist.h" |
2 | + | |
3 | +List make_empty_list(){ | |
4 | + return NULL; | |
5 | +} | |
6 | + | |
7 | +int is_empty(List l){ | |
8 | + return l==NULL; | |
9 | +} | |
10 | +int isIn_List(List l, char e){ | |
11 | + return !is_empty(l) && | |
12 | + (isIn_tree(l.letter,e) || | |
13 | + isIn_list(l.next,e)); | |
14 | +} | |
15 | + | |
16 | + | |
17 | +//add | |
18 | +void addHead(List*l,char e){ | |
19 | + cell* tmp=malloc(sizeof(cell)); | |
20 | + tmp->letter=make_tree(e); | |
21 | + tmp->next=*l; | |
22 | + *l=tmp; | |
23 | +} | |
24 | +void addNext(List*l,char e){ | |
25 | + if(is_empty(*l)) | |
26 | + addHead(l,e); | |
27 | + else{ | |
28 | + cell* tmp=malloc(sizeof(cell)); | |
29 | + tmp->letter=make_tree(e); | |
30 | + tmp->next=*l->next; | |
31 | + *l=tmp; | |
32 | +} | |
33 | +void addAlpha(List*l,char e){ | |
34 | + if(is_empty(*l) || e<(l->letter->val)){ | |
35 | + addHead(l,e); | |
36 | + return; | |
37 | + } | |
38 | + cell* crt=*l; | |
39 | + while(!is_empty(crt->next) && e < crt->next->letter->val) | |
40 | + crt=crt->next; | |
41 | + if(is_empty(crt->next)) | |
42 | + addHead(&crt->next,e); | |
43 | + | |
44 | + if(e> crt->next-letter->val){ | |
45 | + | |
46 | +} | ... | ... |
Slist.h
... | ... | @@ -14,9 +14,10 @@ typedef |
14 | 14 | //function |
15 | 15 | List* make_empty_List(); |
16 | 16 | int is_empty(List); |
17 | -tree* head(List); | |
18 | -List* Queue(List); | |
19 | - | |
17 | +int isIn_list(List,char); | |
18 | +void addAlpha(List*,char); | |
19 | +void addHead(List*,char); | |
20 | +void addNext(List*,char); | |
20 | 21 | |
21 | 22 | |
22 | 23 | ... | ... |
... | ... | @@ -15,17 +15,21 @@ typedef |
15 | 15 | |
16 | 16 | |
17 | 17 | //functions |
18 | -tree* make_empty_tree(); | |
18 | +tree make_empty_tree(); | |
19 | +tree make_tree(char); | |
20 | +int is_empty(tree); | |
21 | +int is_leaf(tree); | |
22 | +int is_end(tree); | |
19 | 23 | tree* cons_tree(); |
20 | 24 | tree* load_tree(FILE*,tree*); |
21 | -int is_empty(tree); | |
22 | -char value(tree); | |
23 | 25 | //char*? values(tree); |
24 | 26 | void print_all(tree); |
25 | -int isIn(tree,string); | |
26 | - | |
27 | - | |
27 | +int isIn_tree(tree,char); | |
28 | +int strIsIn_tree(tree,string); | |
28 | 29 | |
29 | 30 | |
31 | +/* | |
32 | +words end with '\0' and | |
33 | +*/ | |
30 | 34 | |
31 | 35 | #endif //TREE_H | ... | ... |