双向循环链表的创建、查找、插入、删除和遍历等操作
#ifndef __DLINKLIST_H__
#define __DLINKLIST_H__
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
typedef struct double_link_node
{
datatype data;
struct double_link_node *prior,*next;
}dlk,*dplk;
extern void init_dlinklist(dplk *H);
extern void create_dlinklist(dplk p);
extern void search_dlinklist(dplk p,int pos,dplk *r);
extern void insert_dlinklist(dplk p,datatype val,int pos);
extern void delete_dlinklist(dplk p,int pos);
extern void show_dlinklist(dplk p);
extern void clear_dlinklist(dplk p);
#endif
#include "dlinklist.h"
//初始化
void init_dlinklist(dplk *H)
{
*H = (dplk)malloc(sizeof(dlk));
if(NULL == *H)
{