Power set: Difference between revisions
Content added Content deleted
mNo edit summary |
mNo edit summary |
||
Line 43: | Line 43: | ||
add_element |
add_element |
||
importing |
importing |
||
new_element type any |
|||
returning |
returning |
||
value( |
value(new_set) type ref to set, |
||
remove_element |
remove_element |
||
importing |
importing |
||
element_to_be_removed type any |
|||
returning |
returning |
||
value( |
value(new_set) type ref to set, |
||
contains_element |
contains_element |
||
importing |
importing |
||
element_to_be_found type any |
|||
returning |
returning |
||
value(r_contains) type abap_bool, |
value(r_contains) type abap_bool, |
||
get_size |
get_size |
||
returning |
returning |
||
value( |
value(size) type int4, |
||
is_equal |
is_equal |
||
importing |
importing |
||
set_to_be_compared_with type ref to set |
|||
returning |
returning |
||
value( |
value(equal) type abap_bool, |
||
get_elements |
get_elements |
||
exporting |
exporting |
||
elements type any table, |
|||
stringify |
stringify |
||
returning |
returning |
||
value( |
value(stringified_set) type string. |
||
endinterface. |
endinterface. |
||
Line 88: | Line 88: | ||
constructor |
constructor |
||
importing |
importing |
||
elements type stringtab optional, |
|||
build_powerset |
build_powerset |
||
returning |
returning |
||
value( |
value(powerset) type ref to string_set. |
||
Line 102: | Line 102: | ||
class string_set implementation. |
class string_set implementation. |
||
method constructor. |
method constructor. |
||
loop at |
loop at elements into data(element). |
||
me->set~add_element( element ). |
me->set~add_element( element ). |
||
endloop. |
endloop. |
||
Line 109: | Line 109: | ||
method set~add_element. |
method set~add_element. |
||
if not line_exists( me->elements[ table_line = |
if not line_exists( me->elements[ table_line = new_element ] ). |
||
append |
append new_element to me->elements. |
||
endif. |
endif. |
||
new_set = me. |
|||
endmethod. |
endmethod. |
||
method set~remove_element. |
method set~remove_element. |
||
if line_exists( me->elements[ table_line = |
if line_exists( me->elements[ table_line = element_to_be_removed ] ). |
||
delete me->elements where table_line = |
delete me->elements where table_line = element_to_be_removed. |
||
endif. |
endif. |
||
new_set = me. |
|||
endmethod. |
endmethod. |
||
Line 128: | Line 128: | ||
method set~contains_element. |
method set~contains_element. |
||
r_contains = cond abap_bool( |
r_contains = cond abap_bool( |
||
when line_exists( me->elements[ table_line = |
when line_exists( me->elements[ table_line = element_to_be_found ] ) |
||
then abap_true |
then abap_true |
||
else abap_false ). |
else abap_false ). |
||
Line 135: | Line 135: | ||
method set~get_size. |
method set~get_size. |
||
size = lines( me->elements ). |
|||
endmethod. |
endmethod. |
||
method set~is_equal. |
method set~is_equal. |
||
if |
if set_to_be_compared_with->get_size( ) ne me->set~get_size( ). |
||
equal = abap_false. |
|||
return. |
return. |
||
Line 147: | Line 147: | ||
loop at me->elements into data(element). |
loop at me->elements into data(element). |
||
if not |
if not set_to_be_compared_with->contains_element( element ). |
||
equal = abap_false. |
|||
return. |
return. |
||
Line 154: | Line 154: | ||
endloop. |
endloop. |
||
equal = abap_true. |
|||
endmethod. |
endmethod. |
||
method set~get_elements. |
method set~get_elements. |
||
elements = me->elements. |
|||
endmethod. |
endmethod. |
||
method set~stringify. |
method set~stringify. |
||
stringified_set = cond string( |
|||
when me->elements is initial |
when me->elements is initial |
||
then `∅` |
then `∅` |
||
Line 179: | Line 179: | ||
else |{ result }\{{ element }\}, | ) ) ). |
else |{ result }\{{ element }\}, | ) ) ). |
||
stringified_set = replace( |
|||
val = |
val = stringified_set |
||
regex = `, $` |
regex = `, $` |
||
with = ` }`). |
with = ` }`). |
||
Line 199: | Line 199: | ||
endloop. |
endloop. |
||
powerset = new string_set( powerset_elements ). |
|||
endmethod. |
endmethod. |
||
endclass. |
endclass. |