#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef int Status;
typedef struct DuLNode
{
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
} DuLNode,*DuLinkList;
Status InitList_DUL(DuLinkList &L)//初始化一个带头结点的双向循环链表
{
L=(DuLNode*)malloc(sizeof(DuLNode));
L->next=L;
L->prior=L;
if (!L)
exit(0);
return 1;
}
void CreateList_DUL(DuLinkList &L)//正序创建一个带头结点的双向循环链表
{
DuLinkList p,s;
int n,i;
printf("input Length: \n");
scanf("%d",&n);
p=L;
printf("input value with enter:");
for(i=n; i>0; i--)
{
s=(DuLinkList)malloc(sizeof(DuLNode));
scanf("%d",&s->data);
p->next=s;
s->prior=p;
p=s;
}
p->next=L;
L->prior=p;
}
Status GetElem_DuL(DuLinkList L,int i)
{
DuLinkList p;
int j=1;
p=L->next;
while(p&&j<i)
{
p=p->next;
++j;
}
if(!p||j
数据结构:双向链表的创建,合并以及输出
最新推荐文章于 2023-05-19 11:32:48 发布