dlinklist.h
#pragma once
#include<stdio.h>
typedef char DLinkType;
typedef struct DLinkNode {
DLinkType data;
struct DLinkNode* next;
struct DLinkNode* prev;
} DLinkNode;
void DLinkListInit(DLinkNode** head);
void DLinkListPushBack(DLinkNode* head, DLinkType value);
void DLinkListPopBack(DLinkNode* head);
void DLinkListPushFront(DLinkNode* head, DLinkType value);
void DLinkListPopFront(DLinkNode* head);
DLinkNode* DLinkListFind(DLinkNode* head, DLinkType to_find);
/**
* * @brief 往指定位置之前插入一个元素
* */
void DLinkListInsert(DLinkNode* pos, DLinkType value);
/**
* * @brief 往指定位置之后插入一个元素
* */
dlinklist.c
#include<stdio.h>
#include<stdlib.h>
#include"dlinklist.h"
void DLinkListPrintChar(DLinkNode* head,const char* msg)
{
if(head == NULL)
{
printf("非法输入\n");
return;
}
printf("[#####%s#####]\n",msg);
DLinkNode* cur = head->next;
for(;cur != head;cur = cur->next)
{
printf("[%c|%p]\t",cur->data,cur);
}
printf("\n");
return;
}
DLinkNode* CreatDlinkNode(DLinkType value)
{
D