'\"macro stdmacro
.if n .pH g3c.insque @(#)insque	40.5 of 10/27/89
.\" Copyright 1989 AT&T
.\" @(#)insque.3 1.14 88/02/26 SMI; from UCB 6.2 5/20/86
'\"! tbl | mmdoc
'\"macro stdmacro
.if n .pH g3c.insque @(#)insque	31.1 of 4/5/88
.\" Copyright (c) 1983 Regents of the University of California.
.\" All rights reserved.  The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.nr X
.if \nX=0 .ds x} insque 3C "C Programming Language Utilities" "\&"
.if \nX=1 .ds x} insque 3C "C Programming Language Utilities"
.if \nX=2 .ds x} insque 3C "" "\&"
.if \nX=3 .ds x} insque "" "" "\&"
.TH \*(x}
.SH NAME
\f4insque\f1, \f4remque\f1 \- insert/remove element from a queue
.SH SYNOPSIS
.nf
\f4include <search.h>\f1
.PP
\f4void insque(struct qelem \(**elem, struct qelem \(**pred);\f1
.PP
\f4void remque(struct qelem \(**elem);\f1
.fi
.SH DESCRIPTION
\f4insque\f1 and \f4remque\f1
manipulate queues built from doubly linked lists.  Each
element in the queue must be in the following form:
.RS
.nf
.sp .5
.ft4
struct qelem {
	struct	qelem *q_forw;
	struct	qelem *q_back;
	char	q_data[\|];
};
.sp .5
.RE
.ft1
.fi
.PP
\f4insque\f1
inserts \f2elem\fP
in a queue immediately after
\f2pred\f1.
\f4remque\f1
removes an entry
\f2elem\fP
from a queue.
