基本要素声明
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType;
typedef struct DuLNode
{
ElemType data;
struct DuLNode * prior;
struct DuLNode * next;
}DuLNode,*DuLinkList;
双向动态链表逆序创建
图示:当链表为空,插入第一个元素的情况
图示:当链表非空,插入其他元素的情况
void CreateDuList(DuLinkList *L, int n)
{
*L = (DuLinkList)malloc(sizeof(DuLNode)); /* 创建头结点 */
(*L)->next = NULL;
(*L)->prior = NULL;
DuLinkList p;
if(n>0) { /* 如果是第一个结点 */
p = (DuLinkList)malloc(sizeof(DuLNode));
scanf("%d",&p->data);
p->next = (*L)->next;
p->prior = (*L);
(*L)->next = p;
n--;
}
for( ; n>0; n--) {
p = (DuLinkList)malloc(sizeof(DuLNode));
scanf("%d",&p->data);
p->next = (*L)->next;
p->prior = (*L);
(*L)->next = p;
(*L)->next->prior = p;
}
}