Computer Science 2574
Intro to Data Structures & Soft Eng

/*---------------------------------------------------------------
Module name:			dlist.h
Header File:			dlist.h
Implemenation File:   		dlist.c
Purpose:
  This module is responsible for the encapsulated list
creation and management functions for a double linked list.

The user is repsonsible for providing a datatype file called:
  listdata.h
in a directory where it will be found by the search path.
the data structure will need to be in the format:

 struct listdata
		{
			define internal data items here
		};

 struct listtitle
		{
			define header data items here
		};
this data file will be used by this module in its definition
of the list.

Functions:




Created by:  Jon Ford 
Version: 1.00
Modified:  3/6/96
--------------------------------------------------------------*/

#ifndef DLIST_H
#define DLIST_H
#include
#include

#include"listdata.h"


#define NEW_LIST 0
#define CURR_LIST 1

typedef struct listtitle lsttitle;
typedef struct listdata lstruct;
struct liststruct
	{
	 lstruct item;
	 struct liststruct *next;
	 struct liststruct *previous;
	 };

typedef struct liststruct *ElemPtr;

struct mainstruct
	{
	lsttitle title;
	ElemPtr head;
	ElemPtr tail;
	};

typedef struct mainstruct *ListMgr;



ListMgr GetList(int listexist);
int EmptyList(ListMgr listmgr);
ElemPtr CreateElement(void);
void InsertElement(ListMgr listmgr, ElemPtr element);
void RemoveElem(ListMgr listmgr, ElemPtr element);
int sizelist(ListMgr listmgr);
void DestroyList(ListMgr listmgr);

ElemPtr ReturnElemen