您的位置:首页 > 理论基础 > 数据结构算法

数据结构:链表

2015-06-19 10:38 330 查看
单链表
1.创建:
头插法
while(x!=-1){
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=H->next;
H-next=s;
}
return H;
尾插法
while(x!=-1){
s=(LinkList)malloc(sizaof(LNode));
s->data=x;
s->next=r->next;
r->next=s;
r=x;
}
return H;
2.查找Get_Linklist(H,k)
while(p->next!=null&&j<k){
p=p->next;
j++;
}
if(j==k) return p;
else return NULL;

3.插入操作
将s插入到p后面
s->next=p->next;
p->next=s;
将s插入到p的前面
q=H;
while(q->next!=p){
q->next=q;
s->next=q->next;
q->next=s;
将s插在第i个节点的位置上
p=Get_Linklist(H,i-1);
if(p==NULL) 插入错误
else{
s->next=p->next;
p->next=s;
return true;
}
4.删除
p=Get_LinkList(H,i-1);
if(p==null&&p->next==null) return error;
else{
q=p->next;
p->next=q->next;
free(q);;
return true;
}

循环链表
1.合并
p=RA->next;
RA->next=RB->next->next;
free(RB->next);
RB->next=p;

双向链表
(p->prior->next=p,p=p->next->prior)
1.将s插入到p的前面
s->prior=p->prior;
p->prior->next=s;
s->next=p;
p->prior=s;
2.删除操作
p->prior->next=p->next;
p->next->prior=p->prior;
free(p);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: