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

原创 2016年06月01日 00:52:31

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

头文件:链表定义

#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);
}
版权声明:本文为博主原创文章,转载需标明出处。

相关文章推荐

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

思路:先遍历找到要插入的结点,然后创造结点,插入 #define _CRT_SECURE_NO_WARNINGS 1 //在无头单链表的一个非头节点前插入一个节点 #include using na...

删除一个无头单链表的非尾节点【每日一题】

1、删除一个无头单链表的非尾节点: 分析:既然是一个无头链表,那么我们就不能通过直接访问这种形式进行删除。找不到上一个,那么就找下一个,让tmp保存node后节点的信息,然后让改动node的值,让n...

17_7_17:删除一个无头单链表的非尾节点。从尾到头打印单链表

【基础题】 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表首先,给出节点信息#include #include typedef int DataType; typedef struc...

【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置

1.删除无头单链表的非尾节点 函数原型:void DelNotTail(pNode pos); 分析:无头单链表与有头单链表的区别在于找其中的节点不能使用遍历的方法,我们这里定义一个指针cur,让...

day05删除一个无头单链表的非尾节点 +从尾到头打印单链表+复杂链表的复制

1.删除一个无头单链表的非尾节点,时间复杂度为O(1) 2.从尾到头打印单链表 【附加题】--复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指...

16 - 10 - 31 无头节点 单链表 ------《c primer plus》

#include #include /*提供malloc原型*/ #include //提供strcpy()原型 #define TSIZE 45 struct f...
  • SoDaoo
  • SoDaoo
  • 2016年10月31日 23:51
  • 210

从无头单链表中删除节点

问题描述:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除。 一般链表的删除需要顺着头结点向下找到当前待删节点的前驱节点,...

C语言实现无头节点的单链表

测试代码 singlelinkedlist.h头文件 #ifndef __SINGLELINKEDLIST_H__ #include #include #include typedef int...

单链表(无头节点)的实现

链表:链表是一种顺序表,但并不是顺序存储,每个节点都存储着一个指向下一个节点的指针,把存储的数据元素连接起来//SlistNode #pragma once #define _CRT_SECURE_N...
  • xs_520
  • xs_520
  • 2016年12月12日 20:14
  • 1045
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在无头单链表的一个非头节点前插入一个节点
举报原因:
原因补充:

(最多只允许输入30个字)