| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | dlist.h |
/*
* DLIST.H - Doubly linked-list management functions.
* Adapted from 1995 public domain C code by Scott Pitcher.
* Written 1995,96 by Andrew Clarke and released to the public domain.
*/
#ifndef __DLIST_H__
#define __DLIST_H__
typedef struct dlistnode_t {
struct dlistnode_t *L_prev;
struct dlistnode_t *L_next;
void *L_element;
} DLISTNODE_T;
typedef struct {
DLISTNODE_T *L_first;
DLISTNODE_T *L_last;
unsigned long L_elements;
} DLIST_T;
DLIST_T *dlistCreate(void);
void dlistDestroy(DLIST_T * p_list);
void *dlistGetElement(DLISTNODE_T * p_node);
void dlistSetElement(DLISTNODE_T * p_node, void *p_element);
DLISTNODE_T *dlistCreateNode(void *p_element);
void dlistDeleteNode(DLISTNODE_T * p_node);
void dlistAddNode(DLIST_T * p_list, DLISTNODE_T * p_node);
void dlistDropNode(DLIST_T * p_list, DLISTNODE_T * p_node);
DLISTNODE_T *dlistTravFirst(DLIST_T * p_list);
DLISTNODE_T *dlistTravLast(DLIST_T * p_list);
DLISTNODE_T *dlistTravPrevious(DLISTNODE_T * p_node);
DLISTNODE_T *dlistTravNext(DLISTNODE_T * p_node);
int dlistCompareNodes(DLISTNODE_T * p_node1, DLISTNODE_T * p_node2, int
(*fcmp) (const void *, const void *));
void dlistSwapNodes(DLISTNODE_T * p_node1, DLISTNODE_T * p_node2);
DLISTNODE_T *dlistSearch(DLIST_T * p_list, void *p_element, int (*fcmp)
(const void *, const void *));
unsigned long dlistTotalNodes(DLIST_T * p_list);
int dlistIsEmpty(DLIST_T * p_list);
#endif
--- Msgedsq/2 3.30
* Origin: This one HAS to be original X (3:635/727.4{at}fidonet)SEEN-BY: 50/99 78/0 635/309 503 544 727 640/230 711/401 410 413 430 808 809 SEEN-BY: 711/934 712/610 713/888 800/1 7877/2809 @PATH: 635/727 544 50/99 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.