在无头单链表的一个非头节点前插入一个节点

来源:互联网 发布:淘宝的花呗怎么还款 编辑:程序博客网 时间:2024/05/17 08:24

思路:
由于单链表的单向性,所以我们现在这个非头结点的后面插入一个节点,然后在交换这两个节点就可以了。

头文件:链表定义

#include<stdio.h>#include<assert.h>#include<stdlib.h>typedef int DataType;typedef struct strNode{    struct strNode* pNext;    DataType  data;}Node;typedef struct strNode*  PNode;

下面是具体实现代码

PNode Buy_Node(DataType data)//创建节点!!!{    PNode tmp = (PNode)malloc(sizeof(Node));//开辟一个空间节点    if (tmp == NULL)    {        return NULL;    }    tmp->data = data;     tmp->pNext = NULL;    return tmp;}void InsertNotHeadNode(PNode pos, DataType data){    PNode PNewnode = NULL;    PNode _pos = pos;  //记住原来节点的位置    assert(pos);    PNewnode = Buy_Node(data);    PNewnode->pNext = _pos->pNext;    _pos->pNext = PNewnode;     _pos->data = _pos->pNext->data;    _pos->pNext = _pos->pNext->pNext;    free(PNewnode);}
0 0
原创粉丝点击