#include <stdio.h>
#include <stdlib.h>
//头插
int headInsertOfDLink(DLinkList head,Data element)
{
if(head == NULL)
{
printf("head is NULL");
return -1;
}
if(isEmptyOfDlink)
{
DLinkList pinsert = (DLinkList)malloc(sizeof(DNode));
pinsert->element = element;
pinsert->pre = NULL;
pinsert->next = NULL;
head->next = pinsert;
pinsert->pre = head;
return 0;
}else
{
DLinkList pinsert = (DLinkList)malloc(sizeof(DNode));
pinsert->element = element;
pinsert->pre = NULL;
pinsert->next = NULL;
pinsert->next = head->next;
if(pinsert)
pinsert->next->pre = pinsert;
head->next = pinsert;
pinsert->pre = head;
return 0;
}
}
//尾查
int tailInsertOfDLink(DLinkList head,Data element)
{
if(head == NULL)
{
printf("head is NULL");
return -1;
}
DLinkList ppre = head;
while(ppre->next != NULL)
{
ppre = ppre->next;
}
DLinkList pinsert = (DLinkList)malloc(sizeof(DNode));
pinsert->element = element;
pinsert->pre = NULL;
pinsert->next = NULL;
ppre->next = pinsert;
pinsert->pre = ppre;
return 0;
}
}
//遍历双向链表 1正向遍历 0反向遍历
int traverseDLink(DLinkList head,int pattern)
{
if(head == NULL)
{
printf("head is NULL");
return -1;
}
if(pattern)
{
DLinkList p = head->next;
while(p)
{
printf("id : %d",p->element.id);
printf("name : %s",p->element.name);
printf("score : %d",p->element.score);
p = p->next;
}
}else
{
DLinkList p = head->next;
while(p->next != NULL)
{
p = p->next;
}
while(p-pre != NULL)
{
printf("id : %d",p->element.id);
printf("name : %s",p->element.name);
printf("score : %d",p->element.score);
p = p->pre;
}
}
}
384

被折叠的 条评论
为什么被折叠?



