#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
#define ElementType int
List MakeEmpty(List L);
int IsEmpty(List L);
int IsLast(Position P,List L);
Position Find(ElementType x,List L);
void Delete(ElementType x, List L);
Position FindPrevious(ElementType x, List L);
void Insert(ElementType x, List L, Positon P);
void DeleteList(List L);
struct Node
{
ElementType x;
Positon Next;
};
#endif // HEAD_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include <head.h>
int IsEmpty(List L)
{
if(L->Next==NULL)
return 0;
return 1;
}
int IsLast(Position P,List L)
{
return P->Next==NUll;
}
Position Find(ElementType x,List L)
{
Position P;
P=L->Next;
if(P->x!=x&&P->Next!=NULL)
{
P=P->Next;
}
return P;
}
Position FindPrevious(ElementType x,List L)
{
Positon P;
P=L->Next;
if(P->Next->Next!=NULL&&P->Next->x!=x)
{
P=P->Next;
}
return P;
}
void Delete(ElementType x, List P)
{
Positon P=FindPrevious(x,L);
Positon Temp;
Temp=P->Next;
P->Next= Temp->Next;
free(Temp);
}
void Insert(ElementType x, List L, Position P)
{
Positon Temp=(Positon)malloc(sizeof(struct Node));
Temp->ElementType=x;
Temp->Next=P->Next;
P->Next=Temp->Next;
}
void DeleteList(List L)
{
Position P,T;
P=L->Next;
L->Next=NULL;
while(P!=NULL)
{
T=P->Next;
free(P);
P=T;
}
}
int main()
{
return 0;
}