modified: makefile
[GalaxyCodeBases.git] / BGI / SOAPdenovo2 / standardPregraph / inc / stack.h
blob49732600549dd6c470e3fbe020afdefd70138146
1 /*
2 * inc/stack.h
4 * Copyright (c) 2008-2012 BGI-Shenzhen <soap at genomics dot org dot cn>.
6 * This file is part of SOAPdenovo.
8 * SOAPdenovo is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
13 * SOAPdenovo is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with SOAPdenovo. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef __STACK__
24 #define __STACK__
26 #include <stdio.h>
27 #include <unistd.h>
28 #include <stdlib.h>
30 typedef struct block_starter
32 struct block_starter * prev;
33 struct block_starter * next;
34 } BLOCK_STARTER;
36 typedef struct stack
38 BLOCK_STARTER * block_list;
39 int index_in_block;
40 int items_per_block;
41 int item_c;
42 size_t item_size;
43 BLOCK_STARTER * block_backup;
44 int index_backup;
45 int item_c_backup;
46 } STACK;
48 void stackBackup ( STACK * astack );
49 void stackRecover ( STACK * astack );
50 void * stackPush ( STACK * astack );
51 void * stackPop ( STACK * astack );
52 void freeStack ( STACK * astack );
53 void emptyStack ( STACK * astack );
54 STACK * createStack ( int num_items, size_t unit_size );
57 #endif