1、双链表的建立、测长、打印
typedef struct dnode
{
int data;
struct dnode* prior;
struct dnode* next;
}dnode;
//双链表建立
dnode* Create(dnode *head, int n)
{
dnode *p = head;
dnode* q;
for(int i=0; i<n; i++)
{
q = (dnode*)malloc(sizeof(dnode));
cin >> q->data;
q->prior = p;
p->next = q;
p = q;
}
p->next = NULL;
return head;
}
//双链表长度
int Len(dnode* head)
{
dnode *p = head;
int len = 0;
while(p->next != NULL)
{
p = p->next;
len ++;
}
return len;
}
//双链表打印
void Print(dnode *head)
{
dnode *p = head;
while(p->next != NULL)
{
p = p->next;
cout << p->data << " ";
}
cout << endl;
}
2、删除第i个位置上的元素
找到第i个位置p,p->prior->next = p->next; p->next->prior = p->prior
//删除第i个位置上的元素
dnode *Delete(dnode *head, int i)
{