Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

142 lines
2.0 KiB

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
intstack.hxx
Abstract:
This class implements a linked list integer stack.
Author:
Norbert P. Kusters (norbertk) 28-Dec-90
--*/
#if !defined(INTSTACK_DEFN)
#define INTSTACK_DEFN
#include "bigint.hxx"
#if defined ( _AUTOCHECK_ )
#define IFSUTIL_EXPORT
#elif defined ( _IFSUTIL_MEMBER_ )
#define IFSUTIL_EXPORT __declspec(dllexport)
#else
#define IFSUTIL_EXPORT __declspec(dllimport)
#endif
DECLARE_CLASS( INTSTACK );
DEFINE_TYPE( struct _INTNODE, INTNODE );
struct _INTNODE {
PINTNODE Next;
BIG_INT Data;
};
class INTSTACK : public OBJECT {
public:
IFSUTIL_EXPORT
DECLARE_CONSTRUCTOR( INTSTACK );
VIRTUAL
IFSUTIL_EXPORT
~INTSTACK(
);
NONVIRTUAL
IFSUTIL_EXPORT
BOOLEAN
Initialize(
);
NONVIRTUAL
IFSUTIL_EXPORT
BOOLEAN
Push(
IN BIG_INT Data
);
NONVIRTUAL
IFSUTIL_EXPORT
VOID
Pop(
IN ULONG HowMany DEFAULT 1
);
NONVIRTUAL
IFSUTIL_EXPORT
BIG_INT
Look(
IN ULONG Index DEFAULT 0
) CONST;
NONVIRTUAL
ULONG
QuerySize(
) CONST;
NONVIRTUAL
BOOLEAN
IsMember(
IN BIG_INT Data
) CONST;
NONVIRTUAL
IFSUTIL_EXPORT
BOOLEAN
ReverseCopy(
IN PINTSTACK x
);
private:
NONVIRTUAL
VOID
Construct (
);
NONVIRTUAL
VOID
Destroy(
);
PINTNODE _stack;
ULONG _size;
};
INLINE
ULONG
INTSTACK::QuerySize(
) CONST
/*++
Routine Description:
This routine computes the number of elements in the stack.
Arguments:
None.
Return Value:
The number of elements in the stack.
--*/
{
return _size;
}
#endif // INTSTACK_DEFN