#include <stdio.h>
typedef struct dnode //节点类型定义
{
char data; //节点的数据
struct dnode *prior;//节点的前驱指针
struct dnode *next;//节点的后继指针
}dlinklist;
//双链表插入
int d_list_insert(dlinklist *head, int i, char data)//在i位置插入data
{
int j=0;
dlinklist *p,*s;
p = head;
while(j < i-1 && q != NULL)
{
p = p->next;
j++;
}
if(j != i) return -1;
//找到了i的前一个
p = p->next; //定到第i个
s = (dlinklist *)malloc(sizeof(dlinklist));
s->data = data;
s->prior = p->prior;//要插入的前置指针等于当前的前置指针
p->prior->next = s;//当前位置的前趋节点的后置指针等于 新节点的
s->next = p; //连接新节点的的后继指针到当前位置
p->prior = s; //当前位置的前置指针等于新节点
return 1;
}
//按位置删除 节点
int d_list_deldte(dlinklist *head, int i) //删除第i个
{
int j=0;
dlinklist *p;
p = head;
while(j < i-1 && q != NULL)
{
p = p->next;
j++;
}
if(j != i || i == 0) return -1;
p->prior-next = p->next;
p->next->prior = p->priro;
return 1;
}