#include<stdio.h>
#include<stdlib.h>
typedef int elemtype;
typedef struct DLNode
{
elemtype data;
struct DLNode* next, * front;
}DLNode, * DListlink;
DLNode* Creatlist1(DListlink& L, int n)
{
L = (DLNode*)malloc(sizeof(DLNode));
DLNode* r = L;
int x;
int i = 0;
DLNode* q;
printf("请输入你要插入的数:\n");
while (i < n)
{
q = (DLNode*)malloc(sizeof(DLNode));
scanf_s("%d", &x);
q->data = x;
r->next = q;
q->front = r;
r = q;
i++;
}
r->next = L;
L->front = r;
return L;
}
DLNode* Creatlist2(DListlink& L, int n)
{
L = (DLNode*)malloc(sizeof(DLNode));
L->next = NULL;
DLNode* r = L;
int x;
int i = 0;
DLNode* q;
printf("请输入你要插入的数:\n");
while (i < n)
{
q = (DLNode*)malloc(sizeof(DLNode));
scanf_s("%d", &x);
q->data = x;
q->next = L->next;
if (L->next != NULL)
{
L->next->front = q;
}
q->front = L;
L->next = q;
i++;
}
for (int i = 0; i < n; i++)
{
r = r->next;
}
r->next = L;
L->front = r;
return L;
}
void Printflist1(DListlink L,int n)
{
int i = 0;
L = L->next;
while (i<n)
{
printf("%4d", L->data);
L = L->next;
i++;
}
printf("\n");
}
void Printflist2(DListlink L, int n)
{
int i = 0;
L = L->front;
while (i < n)
{
printf("%4d", L->data);
L = L->front;
i++;
}
printf("\n");
}
int main()
{
DLNode* L;
Creatlist1(L, 3);
Printflist1(L,3);
Printflist2(L, 3);
}