关于“双向链表”笔记
双向链表:两个指针域和若干个数据域
【一】数据结构的定义
struct node
{
int data;
node * pre, * next;
};
node * head, * p, * q, * r;
【二】双向链表的插入:在第i个结点前插入x
void insert(node * head,int i,int x)
{
node * s,* p;
int j;
s=new node;
s->data=x;
p=head;
j=0;
while((p->next!=NULL) && (j<i))
{
p=p->next;
j=j+1;
}
if(p->next==NULL) cout<<"不存在";
else
{
s->pre=p->pre;
p->pre=s;
s->next=p;
p->pre->next=s;
}
}
【三】删除双向链表的第i个结点
void insert(node * head,int i)
{
node * p;
int j;
p=head;
j=0;
while((p->next!=NULL) && (j<i))
{
p=p->next;
j=j+1;
}
if(p->next==NULL) cout<<"不存在";
else
{
p->pre->next=p-next;
p-next->pre=p->pre;
}
}
浙公网安备 33010602011771号