<!-- ##### SECTION Title ##### -->
Double-ended Queues

<!-- ##### SECTION Short_Description ##### -->
double-ended queue data structure.

<!-- ##### SECTION Long_Description ##### -->
<para>
The #GQueue structure and its associated functions provide a standard
queue data structure. Internally, #GQueue uses the same data structure as 
#GList to store elements.  
</para>
<para>
The data contained in each element can be either integer values, by using one
of the
<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
or simply pointers to any type of data.
</para>
<para>
To create a new #GQueue, use g_queue_new().
</para>
<para>
To add elements, use g_queue_push_head(), g_queue_push_head_link(), 
g_queue_push_tail() and g_queue_push_tail_link().
</para>
<para>
To remove elements, use g_queue_pop_head() and g_queue_pop_tail().
</para>
<para>
To free the entire queue, use g_queue_free().
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### STRUCT GQueue ##### -->
<para>
Contains the public fields of a <link linkend="glib-queues">Queue</link>.
</para>

@head: a pointer to the first element of the queue.
@tail: a pointer to the last element of the queue.
@length: the number of elements in the queue.

<!-- ##### FUNCTION g_queue_new ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION g_queue_free ##### -->
<para>

</para>

@queue: 


<!-- ##### FUNCTION g_queue_push_head ##### -->
<para>

</para>

@queue: 
@data: 


<!-- ##### FUNCTION g_queue_push_tail ##### -->
<para>

</para>

@queue: 
@data: 


<!-- ##### FUNCTION g_queue_pop_head ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_pop_tail ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_is_empty ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_peek_head ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_peek_tail ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_push_head_link ##### -->
<para>

</para>

@queue: 
@link_: 


<!-- ##### FUNCTION g_queue_push_tail_link ##### -->
<para>

</para>

@queue: 
@link_: 


<!-- ##### FUNCTION g_queue_pop_head_link ##### -->
<para>

</para>

@queue: 
@Returns: 


<!-- ##### FUNCTION g_queue_pop_tail_link ##### -->
<para>

</para>

@queue: 
@Returns: 


