-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
108 lines (106 loc) · 3.33 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include "main.h"
typedef enum options
{
e_get_size,
e_add_at_begin,
e_add_at_end,
e_add_by_index,
e_delete_at_begin,
e_delete_at_end,
e_delete_by_index,
e_show_list,
e_exit
}te_options;
#define INITIAL_VALUE 1
int main()
{
ts_list* new_list = create_list();
if(!new_list)
exit(2);
int index = INITIAL_VALUE;
int cont = INITIAL_VALUE;
int size = new_list->get_list_size(new_list);
while(1)
{
printf(" Wich operation?\n 0-get size\n 1-add at begin\n 2-add at end\n 3-add by index\n 4-delete at begin\n 5-delete at end\n 6-delete by index\n 7-show list\n 8-EXIT\n type command:");
te_options option = read_command();
if(option == e_get_size)
printf("size = %d\n\n",new_list->get_list_size(new_list));
if(option == e_add_at_begin)
{
printf("type string:");
new_list->add_node_at_begin(new_list,read_strings());
printf("string added\n");
}
if(option == e_add_at_end)
{
printf("type string:");
new_list->add_node_at_end(new_list,read_strings());
printf("string added\n");
}
if(option == e_add_by_index)
{
size = new_list->get_list_size(new_list);
printf("which position:");
scanf("%d",&index);
if(VALID_INDEX(index))
{
printf("type string:");
new_list->add_node_by_index(new_list,read_strings(),index);
printf("string added\n");
}
else printf("Wrong index\n");
}
if(option == e_delete_at_begin)
{
size = new_list->get_list_size(new_list);
if(!EMPTY_LIST(size))
{
new_list->delete_node_at_begin(new_list);
printf("node deleted\n");
}
else printf("Empty list\n");
}
if(option == e_delete_at_end)
{
size = new_list->get_list_size(new_list);
if(!EMPTY_LIST(size))
{
new_list->delete_node_at_end(new_list);
printf("node deleted\n");
}
else printf("Empty list\n");
}
if(option == e_delete_by_index)
{
size = new_list->get_list_size(new_list);
if(!EMPTY_LIST(size))
{
printf("which position:");
scanf("%d",&index);
if(VALID_INDEX(index))
{
new_list->delete_node_by_index(new_list,index);
printf("node deleted\n");
}
else printf("Wrong index\n");
}
else printf("Empty list\n");
}
if(option == e_show_list)
{
size = new_list->get_list_size(new_list);
if(!EMPTY_LIST(size))
for(cont =0;cont < size;cont++)
printf("%s\n",new_list->get_node_string_by_index(new_list,cont));
else printf("Empty list\n");
}
if(option == e_exit)
{
delete_list(&new_list);
printf(" BYE BYE ('_')");
return 0;
}
}
return 0;
}