Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
ProjetSyntheseL2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
GOLINELLI Mathias
ProjetSyntheseL2
Commits
d927aa2d
Commit
d927aa2d
authored
Apr 9, 2023
by
vitawrap
Browse files
Options
Downloads
Patches
Plain Diff
Nettoyage des commentaires
parent
92f7040d
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
src/algo.c
+8
-8
8 additions, 8 deletions
src/algo.c
src/instance.c
+3
-3
3 additions, 3 deletions
src/instance.c
src/list.c
+6
-6
6 additions, 6 deletions
src/list.c
src/schedule.c
+14
-14
14 additions, 14 deletions
src/schedule.c
src/tree.c
+10
-10
10 additions, 10 deletions
src/tree.c
with
41 additions
and
41 deletions
src/algo.c
+
8
−
8
View file @
d927aa2d
...
@@ -121,7 +121,7 @@ int get_event_machine(const struct event_key_t * key) {
...
@@ -121,7 +121,7 @@ int get_event_machine(const struct event_key_t * key) {
* @param[in] key
* @param[in] key
*/
*/
void
view_event_key
(
const
void
*
key
)
{
void
view_event_key
(
const
void
*
key
)
{
// A FAIRE
const
struct
event_key_t
*
ekey
=
(
const
struct
event_key_t
*
)
key
;
const
struct
event_key_t
*
ekey
=
(
const
struct
event_key_t
*
)
key
;
printf
(
"event type: %d, event time: %lu, processing time: %lu, task id: %s, machine: %d
\n
"
,
printf
(
"event type: %d, event time: %lu, processing time: %lu, task id: %s, machine: %d
\n
"
,
ekey
->
event_type
,
ekey
->
event_time
,
ekey
->
processing_time
,
ekey
->
task_id
,
ekey
->
machine
);
ekey
->
event_type
,
ekey
->
event_time
,
ekey
->
processing_time
,
ekey
->
task_id
,
ekey
->
machine
);
...
@@ -147,7 +147,7 @@ void delete_event_key(void * key) {
...
@@ -147,7 +147,7 @@ void delete_event_key(void * key) {
* @return int
* @return int
*/
*/
int
event_preceed
(
const
void
*
a
,
const
void
*
b
)
{
int
event_preceed
(
const
void
*
a
,
const
void
*
b
)
{
// A FAIRE
const
struct
event_key_t
*
Akey
=
(
const
struct
event_key_t
*
)
a
;
const
struct
event_key_t
*
Akey
=
(
const
struct
event_key_t
*
)
a
;
const
struct
event_key_t
*
Bkey
=
(
const
struct
event_key_t
*
)
b
;
const
struct
event_key_t
*
Bkey
=
(
const
struct
event_key_t
*
)
b
;
if
(
Akey
->
event_time
<
Bkey
->
event_time
)
{
if
(
Akey
->
event_time
<
Bkey
->
event_time
)
{
...
@@ -198,7 +198,7 @@ struct ready_task_key_t {
...
@@ -198,7 +198,7 @@ struct ready_task_key_t {
* @return struct ready_task_key_t*
* @return struct ready_task_key_t*
*/
*/
struct
ready_task_key_t
*
new_ready_task_key
(
unsigned
long
remaining_processing_time
,
char
*
task_id
)
{
struct
ready_task_key_t
*
new_ready_task_key
(
unsigned
long
remaining_processing_time
,
char
*
task_id
)
{
// A FAIRE
struct
ready_task_key_t
*
key
=
malloc
(
sizeof
(
struct
ready_task_key_t
));
struct
ready_task_key_t
*
key
=
malloc
(
sizeof
(
struct
ready_task_key_t
));
key
->
remaining_processing_time
=
remaining_processing_time
;
key
->
remaining_processing_time
=
remaining_processing_time
;
key
->
task_id
=
strdup
(
task_id
);
key
->
task_id
=
strdup
(
task_id
);
...
@@ -212,7 +212,7 @@ struct ready_task_key_t * new_ready_task_key(unsigned long remaining_processing_
...
@@ -212,7 +212,7 @@ struct ready_task_key_t * new_ready_task_key(unsigned long remaining_processing_
* @return unsigned long
* @return unsigned long
*/
*/
unsigned
long
get_ready_task_remaining_processing_time
(
const
struct
ready_task_key_t
*
key
)
{
unsigned
long
get_ready_task_remaining_processing_time
(
const
struct
ready_task_key_t
*
key
)
{
// A FAIRE
assert
(
key
);
assert
(
key
);
return
key
->
remaining_processing_time
;
return
key
->
remaining_processing_time
;
}
}
...
@@ -224,7 +224,7 @@ unsigned long get_ready_task_remaining_processing_time(const struct ready_task_k
...
@@ -224,7 +224,7 @@ unsigned long get_ready_task_remaining_processing_time(const struct ready_task_k
* @return char*
* @return char*
*/
*/
char
*
get_ready_task_id
(
const
struct
ready_task_key_t
*
key
)
{
char
*
get_ready_task_id
(
const
struct
ready_task_key_t
*
key
)
{
// A FAIRE
assert
(
key
);
assert
(
key
);
return
key
->
task_id
;
return
key
->
task_id
;
}
}
...
@@ -235,7 +235,7 @@ char * get_ready_task_id(const struct ready_task_key_t * key) {
...
@@ -235,7 +235,7 @@ char * get_ready_task_id(const struct ready_task_key_t * key) {
* @param[in] key
* @param[in] key
*/
*/
void
view_ready_task_key
(
const
void
*
key
)
{
void
view_ready_task_key
(
const
void
*
key
)
{
// A FAIRE
const
struct
ready_task_key_t
*
ready_key
=
(
const
struct
ready_task_key_t
*
)
key
;
const
struct
ready_task_key_t
*
ready_key
=
(
const
struct
ready_task_key_t
*
)
key
;
printf
(
" remaining processing time: %lu | task id: %s
\n
"
,
ready_key
->
remaining_processing_time
,
ready_key
->
task_id
);
printf
(
" remaining processing time: %lu | task id: %s
\n
"
,
ready_key
->
remaining_processing_time
,
ready_key
->
task_id
);
}
}
...
@@ -246,7 +246,7 @@ void view_ready_task_key(const void * key) {
...
@@ -246,7 +246,7 @@ void view_ready_task_key(const void * key) {
* @param[in] key
* @param[in] key
*/
*/
void
delete_ready_task_key
(
void
*
key
)
{
void
delete_ready_task_key
(
void
*
key
)
{
// A FAIRE
struct
ready_task_key_t
*
ready_key
=
(
struct
ready_task_key_t
*
)
key
;
struct
ready_task_key_t
*
ready_key
=
(
struct
ready_task_key_t
*
)
key
;
free
(
ready_key
->
task_id
);
free
(
ready_key
->
task_id
);
free
(
ready_key
);
free
(
ready_key
);
...
@@ -261,7 +261,7 @@ void delete_ready_task_key(void * key) {
...
@@ -261,7 +261,7 @@ void delete_ready_task_key(void * key) {
* @return int
* @return int
*/
*/
int
ready_task_preceed
(
const
void
*
a
,
const
void
*
b
)
{
int
ready_task_preceed
(
const
void
*
a
,
const
void
*
b
)
{
// A FAIRE
struct
ready_task_key_t
*
ta
=
a
;
struct
ready_task_key_t
*
ta
=
a
;
struct
ready_task_key_t
*
tb
=
b
;
struct
ready_task_key_t
*
tb
=
b
;
int
res
=
get_ready_task_remaining_processing_time
(
b
)
-
get_ready_task_remaining_processing_time
(
a
);
int
res
=
get_ready_task_remaining_processing_time
(
b
)
-
get_ready_task_remaining_processing_time
(
a
);
...
...
...
...
This diff is collapsed.
Click to expand it.
src/instance.c
+
3
−
3
View file @
d927aa2d
...
@@ -37,7 +37,7 @@ unsigned long get_task_release_time(const struct task_t * task) {
...
@@ -37,7 +37,7 @@ unsigned long get_task_release_time(const struct task_t * task) {
}
}
void
view_task
(
const
void
*
task
)
{
void
view_task
(
const
void
*
task
)
{
// A FAIRE
assert
(
task
);
assert
(
task
);
struct
task_t
*
tk
=
(
struct
task_t
*
)
task
;
struct
task_t
*
tk
=
(
struct
task_t
*
)
task
;
printf
(
"Task: %s ProcessingTime: %lu ReleaseTime: %lu
\n
"
,
tk
->
id
,
tk
->
processing_time
,
tk
->
release_time
);
printf
(
"Task: %s ProcessingTime: %lu ReleaseTime: %lu
\n
"
,
tk
->
id
,
tk
->
processing_time
,
tk
->
release_time
);
...
@@ -76,13 +76,13 @@ Instance read_instance(const char * filename) {
...
@@ -76,13 +76,13 @@ Instance read_instance(const char * filename) {
}
}
void
view_instance
(
Instance
I
)
{
void
view_instance
(
Instance
I
)
{
// A FAIRE
assert
(
I
);
assert
(
I
);
view_list
(
I
);
view_list
(
I
);
}
}
void
delete_instance
(
Instance
I
,
int
deleteData
)
{
void
delete_instance
(
Instance
I
,
int
deleteData
)
{
// A FAIRE
assert
(
I
);
assert
(
I
);
delete_list
(
I
,
deleteData
);
delete_list
(
I
,
deleteData
);
}
}
This diff is collapsed.
Click to expand it.
src/list.c
+
6
−
6
View file @
d927aa2d
...
@@ -100,12 +100,12 @@ void set_list_size(struct list_t * L, int newSize) {
...
@@ -100,12 +100,12 @@ void set_list_size(struct list_t * L, int newSize) {
}
}
void
set_head
(
struct
list_t
*
L
,
struct
list_node_t
*
newHead
)
{
void
set_head
(
struct
list_t
*
L
,
struct
list_node_t
*
newHead
)
{
// A FAIRE
L
->
head
=
newHead
;
L
->
head
=
newHead
;
}
}
void
set_tail
(
struct
list_t
*
L
,
struct
list_node_t
*
newTail
)
{
void
set_tail
(
struct
list_t
*
L
,
struct
list_node_t
*
newTail
)
{
// A FAIRE
L
->
tail
=
newTail
;
L
->
tail
=
newTail
;
}
}
...
@@ -160,7 +160,7 @@ void list_insert_last(struct list_t * L, void * data) {
...
@@ -160,7 +160,7 @@ void list_insert_last(struct list_t * L, void * data) {
}
}
void
list_insert_after
(
struct
list_t
*
L
,
void
*
data
,
struct
list_node_t
*
ptrelm
)
{
void
list_insert_after
(
struct
list_t
*
L
,
void
*
data
,
struct
list_node_t
*
ptrelm
)
{
// A FAIRE
struct
list_node_t
*
new_node
=
new_list_node
(
data
);
//here
struct
list_node_t
*
new_node
=
new_list_node
(
data
);
//here
new_node
->
successor
=
ptrelm
->
successor
;
new_node
->
successor
=
ptrelm
->
successor
;
new_node
->
predecessor
=
ptrelm
;
new_node
->
predecessor
=
ptrelm
;
...
@@ -176,7 +176,7 @@ void list_insert_after(struct list_t * L, void * data, struct list_node_t * ptre
...
@@ -176,7 +176,7 @@ void list_insert_after(struct list_t * L, void * data, struct list_node_t * ptre
void
*
list_remove_first
(
struct
list_t
*
L
)
{
void
*
list_remove_first
(
struct
list_t
*
L
)
{
assert
(
get_list_head
(
L
));
assert
(
get_list_head
(
L
));
// A FAIRE
struct
list_node_t
*
head
=
L
->
head
;
struct
list_node_t
*
head
=
L
->
head
;
if
(
head
->
successor
)
{
if
(
head
->
successor
)
{
head
->
successor
->
predecessor
=
NULL
;
head
->
successor
->
predecessor
=
NULL
;
...
@@ -193,7 +193,7 @@ void * list_remove_first(struct list_t * L) {
...
@@ -193,7 +193,7 @@ void * list_remove_first(struct list_t * L) {
void
*
list_remove_last
(
struct
list_t
*
L
)
{
void
*
list_remove_last
(
struct
list_t
*
L
)
{
assert
(
get_list_head
(
L
));
assert
(
get_list_head
(
L
));
// A FAIRE
struct
list_node_t
*
tail
=
L
->
tail
;
struct
list_node_t
*
tail
=
L
->
tail
;
if
(
tail
->
predecessor
)
{
if
(
tail
->
predecessor
)
{
tail
->
predecessor
->
successor
=
NULL
;
tail
->
predecessor
->
successor
=
NULL
;
...
@@ -210,7 +210,7 @@ void * list_remove_last(struct list_t * L) {
...
@@ -210,7 +210,7 @@ void * list_remove_last(struct list_t * L) {
void
*
list_remove_node
(
struct
list_t
*
L
,
struct
list_node_t
*
node
)
{
void
*
list_remove_node
(
struct
list_t
*
L
,
struct
list_node_t
*
node
)
{
assert
(
get_list_head
(
L
)
&&
get_list_tail
(
L
));
assert
(
get_list_head
(
L
)
&&
get_list_tail
(
L
));
// A FAIRE
if
(
node
->
predecessor
)
{
if
(
node
->
predecessor
)
{
node
->
predecessor
->
successor
=
node
->
successor
;
node
->
predecessor
->
successor
=
node
->
successor
;
}
else
{
}
else
{
...
...
...
...
This diff is collapsed.
Click to expand it.
src/schedule.c
+
14
−
14
View file @
d927aa2d
...
@@ -30,37 +30,37 @@ static struct schedule_node_t * new_schedule_node(struct task_t * task, unsigned
...
@@ -30,37 +30,37 @@ static struct schedule_node_t * new_schedule_node(struct task_t * task, unsigned
}
}
struct
task_t
*
get_schedule_node_task
(
const
struct
schedule_node_t
*
snode
)
{
struct
task_t
*
get_schedule_node_task
(
const
struct
schedule_node_t
*
snode
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
return
snode
->
task
;
return
snode
->
task
;
}
}
unsigned
long
get_schedule_node_begin_time
(
const
struct
schedule_node_t
*
snode
)
{
unsigned
long
get_schedule_node_begin_time
(
const
struct
schedule_node_t
*
snode
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
return
snode
->
begin_time
;
return
snode
->
begin_time
;
}
}
unsigned
long
get_schedule_node_end_time
(
const
struct
schedule_node_t
*
snode
)
{
unsigned
long
get_schedule_node_end_time
(
const
struct
schedule_node_t
*
snode
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
return
snode
->
end_time
;
return
snode
->
end_time
;
}
}
void
set_schedule_node_begin_time
(
struct
schedule_node_t
*
snode
,
unsigned
long
new_bt
)
{
void
set_schedule_node_begin_time
(
struct
schedule_node_t
*
snode
,
unsigned
long
new_bt
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
snode
->
begin_time
=
new_bt
;
snode
->
begin_time
=
new_bt
;
}
}
void
set_schedule_node_end_time
(
struct
schedule_node_t
*
snode
,
unsigned
long
new_et
)
{
void
set_schedule_node_end_time
(
struct
schedule_node_t
*
snode
,
unsigned
long
new_et
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
snode
->
end_time
=
new_et
;
snode
->
end_time
=
new_et
;
}
}
void
view_schedule_node
(
const
void
*
snode
)
{
void
view_schedule_node
(
const
void
*
snode
)
{
// A FAIRE
assert
(
snode
);
assert
(
snode
);
struct
schedule_node_t
*
node
=
(
struct
schedule_node_t
*
)
snode
;
struct
schedule_node_t
*
node
=
(
struct
schedule_node_t
*
)
snode
;
view_task
(
node
->
task
);
view_task
(
node
->
task
);
...
@@ -89,19 +89,19 @@ struct schedule_t * new_schedule(int num_m) {
...
@@ -89,19 +89,19 @@ struct schedule_t * new_schedule(int num_m) {
}
}
struct
list_t
*
get_schedule_of_machine
(
const
struct
schedule_t
*
S
,
const
int
machine
)
{
struct
list_t
*
get_schedule_of_machine
(
const
struct
schedule_t
*
S
,
const
int
machine
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
return
S
->
schedule
[
machine
];
return
S
->
schedule
[
machine
];
}
}
int
get_num_machines
(
const
struct
schedule_t
*
S
)
{
int
get_num_machines
(
const
struct
schedule_t
*
S
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
return
S
->
num_machines
;
return
S
->
num_machines
;
}
}
void
view_schedule
(
const
struct
schedule_t
*
S
)
{
void
view_schedule
(
const
struct
schedule_t
*
S
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
for
(
int
i
=
0
;
i
<
S
->
num_machines
;
i
++
){
for
(
int
i
=
0
;
i
<
S
->
num_machines
;
i
++
){
view_list
(
S
->
schedule
[
i
]);
view_list
(
S
->
schedule
[
i
]);
...
@@ -109,7 +109,7 @@ void view_schedule(const struct schedule_t * S) {
...
@@ -109,7 +109,7 @@ void view_schedule(const struct schedule_t * S) {
}
}
void
delete_schedule
(
struct
schedule_t
*
S
)
{
void
delete_schedule
(
struct
schedule_t
*
S
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
for
(
int
i
=
0
;
i
<
S
->
num_machines
;
i
++
){
for
(
int
i
=
0
;
i
<
S
->
num_machines
;
i
++
){
delete_list
(
S
->
schedule
[
i
],
1
);
delete_list
(
S
->
schedule
[
i
],
1
);
...
@@ -150,7 +150,7 @@ void save_schedule(struct schedule_t * S, char * filename) {
...
@@ -150,7 +150,7 @@ void save_schedule(struct schedule_t * S, char * filename) {
/*
/*
int find_empty_machine(struct schedule_t * S, unsigned long time) {
int find_empty_machine(struct schedule_t * S, unsigned long time) {
// A FAIRE
assert(S);
assert(S);
for(int i = 0; i < get_num_machines(S); i++)
for(int i = 0; i < get_num_machines(S); i++)
{
{
...
@@ -180,7 +180,7 @@ int find_empty_machine(struct schedule_t * S, unsigned long time) {
...
@@ -180,7 +180,7 @@ int find_empty_machine(struct schedule_t * S, unsigned long time) {
}
}
int
find_machine_to_interrupt
(
struct
schedule_t
*
S
,
unsigned
long
time
,
unsigned
long
processing_time
)
{
int
find_machine_to_interrupt
(
struct
schedule_t
*
S
,
unsigned
long
time
,
unsigned
long
processing_time
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
for
(
int
i
=
0
;
i
<
get_num_machines
(
S
);
i
++
)
for
(
int
i
=
0
;
i
<
get_num_machines
(
S
);
i
++
)
{
{
...
@@ -194,7 +194,7 @@ int find_machine_to_interrupt(struct schedule_t * S, unsigned long time, unsigne
...
@@ -194,7 +194,7 @@ int find_machine_to_interrupt(struct schedule_t * S, unsigned long time, unsigne
}
}
void
add_task_to_schedule
(
struct
schedule_t
*
S
,
struct
task_t
*
task
,
int
machine
,
unsigned
long
bt
,
unsigned
long
et
)
{
void
add_task_to_schedule
(
struct
schedule_t
*
S
,
struct
task_t
*
task
,
int
machine
,
unsigned
long
bt
,
unsigned
long
et
)
{
// A FAIRE
assert
(
S
);
assert
(
S
);
assert
(
task
);
assert
(
task
);
assert
(
machine
>=
0
&&
machine
<
get_num_machines
(
S
));
assert
(
machine
>=
0
&&
machine
<
get_num_machines
(
S
));
...
@@ -206,7 +206,7 @@ void add_task_to_schedule(struct schedule_t * S, struct task_t * task, int machi
...
@@ -206,7 +206,7 @@ void add_task_to_schedule(struct schedule_t * S, struct task_t * task, int machi
}
}
unsigned
long
preempt_task
(
struct
schedule_t
*
S
,
int
machine
,
unsigned
long
new_et
)
{
unsigned
long
preempt_task
(
struct
schedule_t
*
S
,
int
machine
,
unsigned
long
new_et
)
{
// A FAIRE int machine
assert
(
S
);
assert
(
S
);
assert
(
machine
>=
0
&&
machine
<
get_num_machines
(
S
));
assert
(
machine
>=
0
&&
machine
<
get_num_machines
(
S
));
struct
list_t
*
M
=
get_schedule_of_machine
(
S
,
machine
);
struct
list_t
*
M
=
get_schedule_of_machine
(
S
,
machine
);
...
...
...
...
This diff is collapsed.
Click to expand it.
src/tree.c
+
10
−
10
View file @
d927aa2d
...
@@ -61,25 +61,25 @@ int get_bfactor(const struct tree_node_t * node) {
...
@@ -61,25 +61,25 @@ int get_bfactor(const struct tree_node_t * node) {
}
}
void
set_tree_node_key
(
struct
tree_node_t
*
node
,
void
*
newKey
)
{
void
set_tree_node_key
(
struct
tree_node_t
*
node
,
void
*
newKey
)
{
// A FAIRE
assert
(
node
);
assert
(
node
);
node
->
key
=
newKey
;
node
->
key
=
newKey
;
}
}
void
set_tree_node_data
(
struct
tree_node_t
*
node
,
void
*
newData
)
{
void
set_tree_node_data
(
struct
tree_node_t
*
node
,
void
*
newData
)
{
// A FAIRE
assert
(
node
);
assert
(
node
);
node
->
data
=
newData
;
node
->
data
=
newData
;
}
}
void
set_left
(
struct
tree_node_t
*
node
,
struct
tree_node_t
*
newLeft
)
{
void
set_left
(
struct
tree_node_t
*
node
,
struct
tree_node_t
*
newLeft
)
{
// A FAIRE
assert
(
node
);
assert
(
node
);
node
->
left
=
newLeft
;
node
->
left
=
newLeft
;
}
}
void
set_right
(
struct
tree_node_t
*
node
,
struct
tree_node_t
*
newRight
)
{
void
set_right
(
struct
tree_node_t
*
node
,
struct
tree_node_t
*
newRight
)
{
// A FAIRE
assert
(
node
);
assert
(
node
);
node
->
right
=
newRight
;
node
->
right
=
newRight
;
}
}
...
@@ -119,7 +119,7 @@ struct tree_t * new_tree(int balanced, int (*preceed)(const void *, const void *
...
@@ -119,7 +119,7 @@ struct tree_t * new_tree(int balanced, int (*preceed)(const void *, const void *
}
}
int
tree_is_empty
(
struct
tree_t
*
T
)
{
int
tree_is_empty
(
struct
tree_t
*
T
)
{
// A FAIRE
return
(
T
==
NULL
)
||
(
T
->
root
==
NULL
);
return
(
T
==
NULL
)
||
(
T
->
root
==
NULL
);
}
}
...
@@ -166,7 +166,7 @@ void set_root(struct tree_t * T, struct tree_node_t * newRoot) {
...
@@ -166,7 +166,7 @@ void set_root(struct tree_t * T, struct tree_node_t * newRoot) {
* @param[in] freeData
* @param[in] freeData
*/
*/
static
void
delete_tree_node
(
struct
tree_node_t
*
curr
,
void
(
*
freeKey
)(
void
*
),
void
(
*
freeData
)(
void
*
))
{
static
void
delete_tree_node
(
struct
tree_node_t
*
curr
,
void
(
*
freeKey
)(
void
*
),
void
(
*
freeData
)(
void
*
))
{
// A FAIRE
if
(
!
curr
)
return
;
if
(
!
curr
)
return
;
delete_tree_node
(
curr
->
left
,
freeKey
,
freeData
);
delete_tree_node
(
curr
->
left
,
freeKey
,
freeData
);
delete_tree_node
(
curr
->
right
,
freeKey
,
freeData
);
delete_tree_node
(
curr
->
right
,
freeKey
,
freeData
);
...
@@ -185,7 +185,7 @@ static void delete_tree_node(struct tree_node_t * curr, void (*freeKey)(void *),
...
@@ -185,7 +185,7 @@ static void delete_tree_node(struct tree_node_t * curr, void (*freeKey)(void *),
void
delete_tree
(
struct
tree_t
*
T
,
int
deleteKey
,
int
deleteData
)
{
void
delete_tree
(
struct
tree_t
*
T
,
int
deleteKey
,
int
deleteData
)
{
//assert(deleteKey == 0 || deleteKey == 1);
//assert(deleteKey == 0 || deleteKey == 1);
//assert(deleteData == 0 || deleteData == 1);
//assert(deleteData == 0 || deleteData == 1);
// A FAIRE
assert
(
T
);
assert
(
T
);
if
(
get_root
(
T
))
if
(
get_root
(
T
))
delete_tree_node
(
T
->
root
,
deleteKey
?
T
->
freeKey
:
NULL
,
deleteData
?
T
->
freeData
:
NULL
);
delete_tree_node
(
T
->
root
,
deleteKey
?
T
->
freeKey
:
NULL
,
deleteData
?
T
->
freeData
:
NULL
);
...
@@ -205,7 +205,7 @@ void delete_tree(struct tree_t * T, int deleteKey, int deleteData) {
...
@@ -205,7 +205,7 @@ void delete_tree(struct tree_t * T, int deleteKey, int deleteData) {
static
void
view_tree_inorder
(
struct
tree_node_t
*
curr
,
static
void
view_tree_inorder
(
struct
tree_node_t
*
curr
,
void
(
*
viewKey
)(
const
void
*
),
void
(
*
viewKey
)(
const
void
*
),
void
(
*
viewData
)(
const
void
*
))
{
void
(
*
viewData
)(
const
void
*
))
{
// A FAIRE
if
(
tree_node_is_empty
(
curr
))
return
;
if
(
tree_node_is_empty
(
curr
))
return
;
view_tree_inorder
(
curr
->
left
,
viewKey
,
viewData
);
view_tree_inorder
(
curr
->
left
,
viewKey
,
viewData
);
...
@@ -331,7 +331,7 @@ static struct tree_node_t * insert_into_tree_node(struct tree_node_t * curr, voi
...
@@ -331,7 +331,7 @@ static struct tree_node_t * insert_into_tree_node(struct tree_node_t * curr, voi
// - recherche récursif de la position à insérer
// - recherche récursif de la position à insérer
// - mise à jour du facteur d'équilibre
// - mise à jour du facteur d'équilibre
// A FAIRE
// Exception
// Exception
if
(
curr
==
NULL
)
{
if
(
curr
==
NULL
)
{
...
@@ -501,7 +501,7 @@ static struct tree_node_t * remove_tree_node(struct tree_node_t * curr, void * k
...
@@ -501,7 +501,7 @@ static struct tree_node_t * remove_tree_node(struct tree_node_t * curr, void * k
}
}
}
}
// A FAIRE
if
(
balanced
&&
curr
)
{
if
(
balanced
&&
curr
)
{
// PARTIE 2 :
// PARTIE 2 :
// Gérer ici les rotations
// Gérer ici les rotations
...
...
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment