首页 > 代码库 > 双向循环链表-C语言版

双向循环链表-C语言版

源文件部分:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
typedef int Elemtype;
#include"Delist.h"
int main()
{
	Dlnode head=NULL;
	instruction(head);
	return 0;
}
头文件部分:
typedef struct DLnode        
{
	Elemtype data;
	struct DLnode *prior;    //节点的声明定义
	struct DLnode *next;
}DLnode,*Dlnode;

void Init_Dlist(Dlnode &head)    //循环双向初始化 
{
	head=(Dlnode)malloc(sizeof(DLnode));
	head->prior=head;
	head->next=head;
}

int Empty_Dlist(Dlnode head)       //双向判空
{
	if(head->prior==head&&head->next==head)
		return 1;
	return 0;
}

void Insert_Dlist(DLnode *head,Elemtype e)   //头插法-双向(新增)
{
	Dlnode p=NULL;
	p=(DLnode *)malloc(sizeof(DLnode));            //因为是双向循环链表,所以不存在双向的那个问题
	if(!p)
	{
		printf("对不起,已无更多的内存单元得到分配!!!\n");
		return ;
	}
	p->data=http://www.mamicode.com/e;>

双向循环链表-C语言版