Class: Containers::XORList
- Inherits:
-
Object
- Object
- Containers::XORList
- Defined in:
- lib/containers/xor_list.rb,
ext/containers/xor_list/xor_list.c
Instance Method Summary collapse
Constructor Details
#initialize ⇒ Object
78 79 80 81 |
# File 'ext/containers/xor_list/xor_list.c', line 78
static VALUE xor_list_init(VALUE self)
{
return self;
}
|
Instance Method Details
#each ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'ext/containers/xor_list/xor_list.c', line 98
static VALUE xor_list_each(VALUE self) {
xor_list *list = get_xor_list(self);
node *current = list->front;
node *prev = NULL, *next = NULL;
while(current) {
rb_yield(current->obj);
next = xor(prev, current->npx);
prev = current;
current = next;
}
return self;
}
|
#push_front(obj) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'ext/containers/xor_list/xor_list.c', line 83
static VALUE xor_list_push_front(VALUE self, VALUE obj) {
xor_list *list = get_xor_list(self);
node *current = create_node(obj);
if(list->front) {
current->npx = xor(NULL, list->front);
list->front->npx = xor(current, xor(NULL, list->front->npx));
}
else {
list->back = current;
}
list->front = current;
list->size++;
return obj;
}
|