From 9ec087f09b9d97411d6fd6701591389cd146bbd2 Mon Sep 17 00:00:00 2001 From: ViolentAyang <76544389+ViolentAyang@users.noreply.github.com> Date: Fri, 18 Mar 2022 17:09:51 +0800 Subject: [PATCH] =?UTF-8?q?Create=20=E5=8F=8C=E9=93=BE=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E6=8F=92=E5=85=A5.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 链表/双链表的插入.c | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 链表/双链表的插入.c diff --git a/链表/双链表的插入.c b/链表/双链表的插入.c new file mode 100644 index 0000000..16e36c6 --- /dev/null +++ b/链表/双链表的插入.c @@ -0,0 +1,59 @@ +#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; +} + +//在p结点前插入s结点 +bool InsertBeforeNode(DNode *p,DNode *s){ + if(p==NULL||s==NULL){ + return false; + } + s->next = p; + s->prior = p->prior; + if(p->prior){ + p->prior->next = s; + } + p->prior = s; +} +//在p结点之后插入s结点 +bool InsertNextNode(DNode*p,DNode *s){ + if(p==NULL||s==NULL){ + return false; + } + s->next = p->next; + if(p->next){ + p->next->prior = s; + } + s->prior = p; + p->next = s; + return true; +} +void List_Print(DLinkList L){ + DLinkList p = L->next; + printf("链表的元素为:\n"); + while(p){ + printf("%d\t",p->data); + p = p->next; + } +} + +int main() +{ + DLinkList L; + InitDlinkList(L); + return 0; +}