X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=include%2Ffibheap.h;h=a3d09dd9db8d70f1e4f9468f95243686f315ea7f;hb=625e7228c656b159ba2274346936638504eed392;hp=addef19db95cd40d901fc494e913cda41c7cfc19;hpb=195309abd279a76d5d47839bce18dab847b797e3;p=pf3gnuchains%2Fgcc-fork.git diff --git a/include/fibheap.h b/include/fibheap.h index addef19db95..a3d09dd9db8 100644 --- a/include/fibheap.h +++ b/include/fibheap.h @@ -1,5 +1,6 @@ /* A Fibonacci heap datatype. - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009 + Free Software Foundation, Inc. Contributed by Daniel Berlin (dan@cgsoftware.com). This file is part of GCC. @@ -16,8 +17,8 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, 51 Franklin Street - Fifth Floor, +Boston, MA 02110-1301, USA. */ /* Fibonacci heaps are somewhat complex, but, there's an article in DDJ that explains them pretty well: @@ -42,6 +43,10 @@ Boston, MA 02111-1307, USA. */ #include "ansidecl.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef long fibheapkey_t; typedef struct fibheap @@ -59,28 +64,32 @@ typedef struct fibnode struct fibnode *right; fibheapkey_t key; void *data; -#ifdef __GNUC__ - unsigned long int degree : 31; - unsigned long int mark : 1; +#if defined (__GNUC__) && (!defined (SIZEOF_INT) || SIZEOF_INT < 4) + __extension__ unsigned long int degree : 31; + __extension__ unsigned long int mark : 1; #else unsigned int degree : 31; unsigned int mark : 1; #endif } *fibnode_t; -extern fibheap_t fibheap_new PARAMS ((void)); -extern fibnode_t fibheap_insert PARAMS ((fibheap_t, fibheapkey_t, void *)); -extern int fibheap_empty PARAMS ((fibheap_t)); -extern fibheapkey_t fibheap_min_key PARAMS ((fibheap_t)); -extern fibheapkey_t fibheap_replace_key PARAMS ((fibheap_t, fibnode_t, - fibheapkey_t)); -extern void *fibheap_replace_key_data PARAMS ((fibheap_t, fibnode_t, - fibheapkey_t, void *)); -extern void *fibheap_extract_min PARAMS ((fibheap_t)); -extern void *fibheap_min PARAMS ((fibheap_t)); -extern void *fibheap_replace_data PARAMS ((fibheap_t, fibnode_t, void *)); -extern void *fibheap_delete_node PARAMS ((fibheap_t, fibnode_t)); -extern void fibheap_delete PARAMS ((fibheap_t)); -extern fibheap_t fibheap_union PARAMS ((fibheap_t, fibheap_t)); +extern fibheap_t fibheap_new (void); +extern fibnode_t fibheap_insert (fibheap_t, fibheapkey_t, void *); +extern int fibheap_empty (fibheap_t); +extern fibheapkey_t fibheap_min_key (fibheap_t); +extern fibheapkey_t fibheap_replace_key (fibheap_t, fibnode_t, + fibheapkey_t); +extern void *fibheap_replace_key_data (fibheap_t, fibnode_t, + fibheapkey_t, void *); +extern void *fibheap_extract_min (fibheap_t); +extern void *fibheap_min (fibheap_t); +extern void *fibheap_replace_data (fibheap_t, fibnode_t, void *); +extern void *fibheap_delete_node (fibheap_t, fibnode_t); +extern void fibheap_delete (fibheap_t); +extern fibheap_t fibheap_union (fibheap_t, fibheap_t); + +#ifdef __cplusplus +} +#endif #endif /* _FIBHEAP_H_ */