diff options
| author | Paul Buetow <pbuetow@mimecast.com> | 2018-03-06 17:38:59 +0000 |
|---|---|---|
| committer | Paul Buetow <pbuetow@mimecast.com> | 2018-03-06 17:38:59 +0000 |
| commit | 26b3b3e368a79ce29df732ea04e72a4c002ae2ce (patch) | |
| tree | e3fc8d7461ab371279f7bf9c692096cd39cc92f6 /ioreplay/src/datas/stack.c | |
| parent | ae2221660f9b411fa78cdf8034f0803e9a870cde (diff) | |
rename into ioriot
Diffstat (limited to 'ioreplay/src/datas/stack.c')
| -rw-r--r-- | ioreplay/src/datas/stack.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/ioreplay/src/datas/stack.c b/ioreplay/src/datas/stack.c deleted file mode 100644 index 94e83e3..0000000 --- a/ioreplay/src/datas/stack.c +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2018 Mimecast Ltd. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "stack.h" - - -stack_s *stack_new() -{ - stack_s *s = Malloc(stack_s); - *s = (stack_s) { - .top = NULL, .size = 0 - }; - return s; -} - -void stack_destroy(stack_s *s) -{ - stack_elem_s *current = s->top; - - while (current) { - stack_elem_s *next = current->next; - free(current); - current = next; - } - - free(s); -} - -void stack_push(stack_s *s, void *data) -{ - stack_elem_s *new_top = Malloc(stack_elem_s); - - *new_top = (stack_elem_s) { - .next = s->top, - .data = data - }; - - s->top = new_top; - s->size++; -} - -void* stack_pop(stack_s *s) -{ - if (s->top == NULL) { - return NULL; - } - - stack_elem_s *old_top = s->top; - - void *data = old_top->data; - s->top = old_top->next; - free(old_top); - s->size--; - - return data; -} - -int stack_is_empty(stack_s *s) -{ - return s->top == NULL; -} - -stack_s* stack_new_reverse_from(stack_s *s) -{ - stack_s* r = stack_new(); - - while (!stack_is_empty(s)) { - stack_push(r, stack_pop(s)); - } - - stack_destroy(s); - - return r; -} |
