0205作业

单链表头插

/** 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;

}

相关推荐

  1. 0205作业

    2024-02-06 06:50:02       52 阅读
  2. 作业..........

    2024-02-06 06:50:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-06 06:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-06 06:50:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-06 06:50:02       82 阅读
  4. Python语言-面向对象

    2024-02-06 06:50:02       91 阅读

热门阅读

  1. 与AI对话:编写高效Prompt的指南

    2024-02-06 06:50:02       54 阅读
  2. MongoDB聚合:$listSampledQueries

    2024-02-06 06:50:02       55 阅读
  3. TypeScript:将arraybuffer类型数据转换为json

    2024-02-06 06:50:02       51 阅读
  4. 力扣:131. 分割回文串

    2024-02-06 06:50:02       53 阅读
  5. Sping常见注解使用方法----持续更新中20240116

    2024-02-06 06:50:02       59 阅读
  6. fastapi mysql 开发restful 3

    2024-02-06 06:50:02       52 阅读