summaryrefslogtreecommitdiff
path: root/ioreplay/src/datas/stack.c
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2018-03-06 17:38:59 +0000
committerPaul Buetow <pbuetow@mimecast.com>2018-03-06 17:38:59 +0000
commit26b3b3e368a79ce29df732ea04e72a4c002ae2ce (patch)
treee3fc8d7461ab371279f7bf9c692096cd39cc92f6 /ioreplay/src/datas/stack.c
parentae2221660f9b411fa78cdf8034f0803e9a870cde (diff)
rename into ioriot
Diffstat (limited to 'ioreplay/src/datas/stack.c')
-rw-r--r--ioreplay/src/datas/stack.c85
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;
-}