#include <stdio.h>
#include <stdlib.h>
//数据
typedef struct
{
int num;
}ElemType;
//双向链表的结构定义
typedef struct DuLNode
{
ElemType data;
struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;
//初始化双向结构体
void InitDuList(DuLNode **p)
{
*p=(DuLNode*)malloc(sizeof(DuLNode));
(*p)->next=(*p);
(*p)->prior=(*p);
printf("空的双向链式线性表已经建成\n");
}
//判断双向循环链表是否为空
void DuListEmpty(DuLNode *p)
{
if((p->next)==p&&(p->prior)==p)
{
printf("双向链表为空\n");
}
else
{
printf("此表不为空\n");
}
}
//销毁双向循环链表
void DestroyDuList(DuLNode **L)
{
DuLNode *s=*L;
DuLNode *p;
while(s!=(*L))
{
p=s;
s=s->next;
free(p);
}
*L=NULL;
printf("此双向循环链表已经销毁");
}
//获取某个元素(双向)
int Getelem_Du(DuLinkList L,int i)
{
DuLNode *p;
p=L->next;
int j=1,elem;
while(p!=L&&j<i)
{
p=p->next;
j++;
}
if(p==L||j>
双向循环链表(c语言)
最新推荐文章于 2023-08-26 02:44:09 发布