在无头单链表的一个节点前插入一个节点(不能遍历链表)

原创 2018年04月14日 23:59:51

首先创建一个新的节点newnode,在节点pos之前插入新的节点,因为不能遍历链表,所以不能用常规的插入操作来实现,我们先记录pos的下一个节点next,让新的节点的数据为pos节点的数据,再让pos节点的数据为新的节点的数据,这样,只要将新的节点链接到pos节点后面就可以实现。
这里写图片描述

typedef struct SListNode
{
    struct SListNode* _next;
    DataType _data;
}SListNode;
void SListInsertFrontNode(SListNode* pos, DataType x)
{
    assert(pos);
    SListNode* newNode = BuySListNode(x);
    SListNode* next = pos->_next;
    newNode->_data=pos->_data;
    pos->_data = x;
    newNode->_next = next;
    pos->_next = newNode;
}

Java基础视频教程动力节点_JavaScript

JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用
  • 2016年12月24日 14:53

【单链表经典面试题解析二】删除一个无头单链表的非尾节点(不能遍历链表)

要在不能遍历一遍单链表的情况下,删除单链表的非尾结点。我们可以试试如下这种方法:   首先,我们先建立一个节点pCur,令节点pCur指向要删除的节点pos的下一个节点,然后,我们先把pCur的值赋...
  • sofia_m
  • sofia_m
  • 2017-10-16 15:47:20
  • 196

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

链表:链表是一种顺序表,但并不是顺序存储,每个节点都存储着一个指向下一个节点的指针,把存储的数据元素连接起来//SlistNode #pragma once #define _CRT_SECURE_N...
  • xs_520
  • xs_520
  • 2016-12-12 20:14:16
  • 1648

无头单链表节点的删除以及新节点之前的插入

想要理解这两种操作,我们首先需要了解的是什么事无头单链表,无头单链表就是指的没有头指针的一个单独节点。就好比我们永指针遍历链表一样,某一时刻指针指向的一个非尾节点就是一个无头单链表。这样一个链表的最大...
  • Exziro
  • Exziro
  • 2017-01-25 23:01:57
  • 374

单链表实现(C语言版,无头结点)

前言:单链表:它是一种链式储存的线性表,用一组地址任意的储存单元存放线性表的数据元素;称储存单元为一个结点;结点:值域+指针域 链表:二、代码实现(1)结点定义:typedef int DataTy...
  • gogogo_sky
  • gogogo_sky
  • 2017-05-02 02:42:04
  • 1152

单向无头节点链表操作

#include #include #include  #include   #define MALLOC(name,type1,type2)\ if(!((name) = (type1)...
  • kovacic
  • kovacic
  • 2016-02-28 20:39:32
  • 865

单链表的创建(有头结点和无头结点)

1、有头结点的单链表的创建#include using namespace std;struct ListNode{ int val; ListNode *next; };//有头...
  • qq_36748278
  • qq_36748278
  • 2017-01-14 13:37:26
  • 3336

《编程之美》——从无头单链表中删除节点

问题: 假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点)。请将该节点从单链表中删除。分析与解法: 若要删除该节点,正常情况下,应该要知道该节点的...
  • zengzhen_CSDN
  • zengzhen_CSDN
  • 2015-11-04 16:25:27
  • 717

实现无头结点单链表的基本操作函数

基于单链表经常见的面试题——基础篇 基于单链表的面试题——进阶篇什么是无头结点链表??? singlelinkedlist.h头文件#ifndef __SINGLELINKEDLIST_H__ ...
  • Quinn0918
  • Quinn0918
  • 2017-06-09 17:29:41
  • 1354

删除一个无头单链表的非尾节点(C语言)

void DelNotTailNode(PSListNode pos) { PSListNode pNode = NULL; assert(pos); if (NULL == ...
  • ljx_5489464
  • ljx_5489464
  • 2016-04-14 15:40:23
  • 633
收藏助手
不良信息举报
您举报文章:在无头单链表的一个节点前插入一个节点(不能遍历链表)
举报原因:
原因补充:

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