//定义一个结构体
typedef struct Node
{
ElemType data;
struct Node* prior;
struct Node* next;
}DListNode,*DLinkList;
//插入函数,head双链表头指针 i 表示链表第i个元素前的插入位置 p 代表要插入的节点
int insertIntoI(DlinkList head,int i,DlistNode *p){
if(head->next==null)//判断链表是否为空
returen 0;
int k=0;
DlinkList pre=Null; //保存第i-1个节点位置
DLinkList s=Null; //保存第i个节点位置
//找到第i-1个位置的节点
pre=head->next;//先指向第一个节点
for(k=0;k<i-1;k++)
pre=pre->next;
s=pre->next;//指向第i个节点
p->next=s;//p的后继指向第i个节点
p->prior=pre;//p的前驱指向第i-1个节点
pre->next=p;//第i-1个节点的后继指向P
s->prior=p;//第i个节点的前驱指向P
return 1;
}