双向链表,对其实现头插入,尾插入以及遍历倒序输出

1.创建一个节点,并将链表的首节点返回

创建一个独立节点,没有和原链表产生任何关系

cs 复制代码
#include "head.h"

typedef struct Node
{
int num;
struct Node*pNext;
struct Node*pPer;
}NODE;

后续代码:

cs 复制代码
NODE*createNode(int value)
{
    NODE*new node=(NODE*)malloc(sizeof(NODE));
    if(NULL==new node)
    {
        perror("createNode malloc fail");
        return NULL;
    }
    new node->num=value;
    new node->pNext=NULL;
    new node->pPer=NULL;
    return new node;
}

//头插法

cs 复制代码
NODE*instetHead(NODE*head,int value)
{
    NODE*new node=createNode(value);
    if(NULL==new code)
    {
        //新节点创建失败
        return head;
    }

    if(head==NULL)
    {
    //原链表为空
    return new node;
    }
    new node->pNext=head;
    head->pPer=new node;
    return new node;
}

//获取链表的尾节点指针

cs 复制代码
NODE*getListTail(NODE*head)
{
    if(head==NULL)
    {
        return NULL;
    }

    while(head->pNext!=NULL)
    {
        head=head->pNext;
    }
     return head;
}

NODE*currentPosNOde(NODE*head,int pos)
{
    if(head==NULL)
    {
        return NULL;
    }
    for(int i=0;i<pos-1;i++)
    {
        head=head->pNext;
    }
    return head;
}

//pos=0时为头插法

//当前函数不处理头插和尾插的情况

cs 复制代码
NODE*insertMid(NODE*head,int value,int pos)
{
    NODE*new node=createNode(value);
    if(NULL==new node)
    {
    //新节点创建失败
    return head;
    }
    if(head==NULL)
    {
        //原链表为空
        return new node;
    }

//获取pos位置的节点指针

cs 复制代码
NODE*cur=currentPosNode(head,pos);

//将新节点与其插入位置之后的节点进行连接

cs 复制代码
new node->pNext=cur->pNext;
cur->pNext->pPer=cur;

    return head;
相关推荐
zzz_23681 天前
【Java基础】链表的七十二变——从LRU缓存到手写浏览器前进后退
java·链表·缓存
Irissgwe1 天前
顺序表和链表
数据结构·c++·链表·c·顺序表·线性表
玖玥拾1 天前
C/C++ 数据结构(四)链表与STL容器
c语言·数据结构·c++·链表·stl库
满怀冰雪1 天前
第15篇-链表基础-反转链表-合并链表与快慢指针
java·算法·链表
玖玥拾1 天前
C/C++ 数据结构(一)基础概念、线性表链表
c语言·数据结构·c++·链表
LuminousCPP1 天前
数据结构 - 单链表第二篇:单链表进阶操作
c语言·数据结构·笔记·链表
玖玥拾1 天前
C/C++ 数据结构(三)链表核心算法
c语言·数据结构·c++·链表
2601_961875242 天前
法考资料2026|全套|资料已整理
数据结构·算法·链表·贪心算法·eclipse·线性回归·动态规划
退休倒计时2 天前
【每日一题】LeetCode 19. 删除链表的倒数第 N 个结点 TypeScript
leetcode·链表·typescript
love_muming2 天前
链表每日一练
java·开发语言·数据结构·链表·idea·每日一练