diff --git a/链表/双链表的遍历.c b/链表/双链表的遍历.c new file mode 100644 index 0000000..729a0a1 --- /dev/null +++ b/链表/双链表的遍历.c @@ -0,0 +1,46 @@ +#include +#include +#include + +typedef struct DNode{ + int data; + struct DNode *next,*prior; +}DNode,*DLinkList; + +bool InitDlinkList(DLinkList L){ + L = (DLinkList)malloc(sizeof(DNode)); + if(L==NULL){ + return false; + } + L->prior = NULL; + L->next =NULL; + return true; +} +//前项遍历 +void forwardTraverse(DNode *p){ + while(p!=NULL){ + printf("%d",p->data); + p = p->prior; + } +} +//后项遍历 +void afterTraverse(DNode *p){ + while(p!=NULL){ + printf("%d",p->data); + p = p->next; + } +} +//前项遍历(跳过头结点) +void forwardTraverseSkipHead(DNode *p){ + while(p->prior){ + printf("%d",p->data); + p = p->prior; + } +} + +int main() +{ + DLinkList L; + InitDlinkList(L); + return 0; +}