diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2021-11-05 13:28:23 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2021-11-05 13:28:23 +0100 |
commit | 8c787c3591c1c885b91a54128835b400858c5cca (patch) | |
tree | eca1b776912a305c4d45b3964038278a2fae1ead /debian/htdig/htdig-3.2.0b6/htlib/Stack.cc | |
parent | fe188b907cdf30dfdfe0eba9412e7f8749fec158 (diff) | |
download | extra-dependencies-8c787c3591c1c885b91a54128835b400858c5cca.tar.gz extra-dependencies-8c787c3591c1c885b91a54128835b400858c5cca.zip |
DEB htdig: Added to repository.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htlib/Stack.cc')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htlib/Stack.cc | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htlib/Stack.cc b/debian/htdig/htdig-3.2.0b6/htlib/Stack.cc new file mode 100644 index 00000000..5d74519b --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htlib/Stack.cc @@ -0,0 +1,111 @@ +// +// Stack.cc +// +// Stack: This class implements a linked list of objects. It itself is also an +// object +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1999-2004 The ht://Dig Group +// For copyright details, see the file COPYING in your distribution +// or the GNU Library General Public License (LGPL) version 2 or later +// <http://www.gnu.org/copyleft/lgpl.html> +// +// $Id: Stack.cc,v 1.5 2004/05/28 13:15:21 lha Exp $ +// + +#ifdef HAVE_CONFIG_H +#include "htconfig.h" +#endif /* HAVE_CONFIG_H */ + +#include "Stack.h" + +struct stacknode +{ + stacknode *next; + Object *obj; +}; + +//*************************************************************************** +// Stack::Stack() +// +Stack::Stack() +{ + sp = 0; + size = 0; +} + + +//*************************************************************************** +// Stack::~Stack() +// +Stack::~Stack() +{ + while (sp) + { + Object *obj = pop(); + delete obj; + } +} + + +//*************************************************************************** +// void Stack::destroy() +// +void Stack::destroy() +{ + while (sp) + { + Object *obj = pop(); + delete obj; + } +} + + +//*************************************************************************** +// void Stack::push(Object *obj) +// PURPOSE: +// Push an object onto the stack. +// +void Stack::push(Object *obj) +{ + stacknode *node = new stacknode; + + node->obj = obj; + node->next = (stacknode *) sp; + sp = node; + size++; +} + + +//*************************************************************************** +// Object *Stack::pop() +// PURPOSE: +// Return the object at the top of the stack and remove it from the stack. +// +Object *Stack::pop() +{ + if (size == 0) + return 0; + + stacknode *node = (stacknode *) sp; + Object *obj = node->obj; + sp = (void *) node->next; + delete node; + size--; + + return obj; +} + + +//*************************************************************************** +// Object *Stack::peek() +// PURPOSE: +// Return the object at the top of the stack. +// +Object *Stack::peek() +{ + if (size == 0) + return 0; + + return ((stacknode *)sp)->obj; +} |