template <typename ElemType>
typedef struct DulNode
{
struct DulNode *prior; //前驱指针
ElemType data; //数据
struct DulNode *next; //后继指针
} DulNode, *DuLinkList;
//----------------删除操作-----------------------------
Status ListDelete_DuL(DuLinkList &L, int i, ElemType &e)
{
if (!(p = GetElemP_DuL(L, i)))
return ERROR;
e = p->data;
p->prior->next = p->next;
p->next->prior = p->prior;
free(p);
return OK;
}
//-----------------------插入操作---------------------
Status ListInsert_DuL(DuLinkList &L, int i, ElemType &e)
{
if (!(p = GetElemP_DuL(L, i)))
return ERROR;
DuLinkList *s;
if (!(s = (DuLinkList)malloc(sizeof(DuLNode))))
return ERROR;
s->data = e;
s->prior = p->prior;
p->prior->next = s;
s->next = p;
p->prior = s;
return OK;
}