本文介绍: param [ in] * @param [out] 插入的值,//1,判断链表为空 if(NULL==head)/* * function: 双向链表头插。/* * function: 尾插入 */* * function: 头删 */* * function: 尾删 *@return 返回头指针 */@return 返回链表 */} else //链表不为空。//2,判断链表只有一个节点。头插:在第一个节点插入 *//1,循环到最后一个节点。//链表存在1个或多个节点。//2.存在多个节点>=1。

单链表头插

/** function:

头插:在第一个节点插入 *

@param [ in] * @param [out] 插入的值,

链表 * @return 如果形参头指针改变,就必须返回,返回首地址

*/ Linklist insert_head(datatype element,Linklist head)

{ //创建新节点 Linklist s=create_node();

if(NULL==s) return head; s->data=element;

//1,判断链表为空 if(NULL==head)

{

head=s;

}

else //链表不为空

{

s->next=head;

head=s;

}

return head;

}

单链表尾插

Linklist insert_rear(datatype element,Linklist head)

{ //创建新节点s

Linklist s=create_node();

if(NULL==s) return head;

s->data=element;

//1,判断链表为空

if(NULL ==head)

{

head=s;

} else //链表不为空

{

//1,循环到最后一个节点

Linklist p=head;

while(p->next!=NULL)

{

p=p->next;

}

//2,在p后面插入s

p->next=s;

}

return head;

}

单链表头删

Linklist delete_head(Linklist head)

{

//1,判断链表为空

if(NULL==head)

{

return head;

} else

//链表存在1个或多个节点

{

Linklist del=head;

head=head->next;

free(del); del=NULL;

}

return head;

}

单链表尾删
Linklist delete_rear(Linklist head)

{

//1,判断链表为空

if(NULL ==head)

return head;

//2,判断链表只有一个节点

if(NULL ==head->next)

{

free(head);

head=NULL;

} else

//存在多个节点>=2

{ //3.找到倒数第2个节点

Linklist del=head;

(del->next->next!=NULL)

{

del=del->next;

}

//4.删除del->next

free(del->next);

del->next=NULL;

}

return head;

}

4> 双向链表节点头插

/* * function: 双向链表头插

 @param [ in] *

@param [out] 值,头指针 *

@return 返回头指针 */

Doublelink double_insert_head(datatype element,Doublelink head)

{

//创建新节点s

Doublelink s=create_node();

if(s==NULL)

return head;

strcpy(s->data,element);

//1.判断链表为空

if(NULL ==head)

head=s;

//2.存在多个节点>=1

else {

s->next=head;

head->priv=s;

head=s;

}

return head;

}

 双向链表节点尾插

/* * function: 尾插入 *

@param [ in] *

@param [out] *

@return 返回链表 */

Doublelink doublelink_insert_rear(datatype element,Doublelink head)

{ //创建新节点s

Doublelink s=create_node();

if(s==NULL)

return head;

strcpy(s->data,element);

//1,没有节点

if(NULL ==head)

head=s;

else {

//找到最后一个节点

Doublelink p=head;

while(p->next!=NULL)

{

p=p->next;

}

//插入s

p->next=s;

s->priv=p;

}

return head;

}

双向链表节点头删

/* * function: 头删 *

@param [ in] *

@param [out] *

@return */

Doublelink delete_head(Doublelink head)

{ //1,判断链表为空

if(NULL==head)

return head;

//2,存在多个节点

Doublelink q=head;

head=head->next;

if(head!=NULL)

head->priv=NULL;

free(q); q=NULL;

return head;

}

双向链表节点尾删

/* * function: 尾删 *

@param [ in] 链表 *

@param [out] *

@return 链表 */

Doublelink delete_rear(Doublelink head)

{

//1,判断链表为空

if(NULL ==head)

return head;

//2,只有一个节点

if(head->next==NULL)

{ free(head);

head=NULL;

} else //>=2

{ //找到最后一个节点

Doublelink p=head;

while(p->next!=NULL)

{

p=p->next;

}

p->priv->next=NULL;

free(p);

p=NULL;

}

return head;

}

原文地址:https://blog.csdn.net/JeromeSahara/article/details/136046708

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_67261.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注