在無頭單鏈表的一個節點前插入一個節點(不能遍歷)
例如
無頭連結串列 A—>B—>C—>D 在節點C前面插入一個節點
思路: 乾坤大挪移
在C的後插入一個節點,可以將C後面新插入的節點Q的值與C的值交換
即可實現C節點之前插入節點的功能
void Listentry(ListNode** phead, LinkNode* pos ,Datatype value)
{
if(pos==NULL||phead==NULL)
{ //非法
return ;
}
//若pos在頭節點 ,呼叫頭插
ListPushFront(&phead);
//若在常規位置使用 乾坤大挪移
LinkNode* new=ListCreate();
new->data=value;
new->next=pos->next;
pos->data=new->data;
pos->next=new;
}
相關推薦
單鏈表的建立,插入,刪除,遍歷
1 #include<stdio.h> 2 #include<iostream> 3 #include<malloc.h> 4 #define OK 1 5 #define ERROR 0 6 using namespace std; 7
在無頭單鏈表的一個節點前插入一個節點(不能遍歷)
例如 無頭連結串列 A—>B—>C—>D 在節點C前面插入一個節點 思路: 乾坤大挪移 在C的後插入一個節點,可以將C後面新插入的節點Q的值與C的值交換 即可實現C節點之前插入節點的功能 void Listen
在無頭單鏈表的一個結點前插入一個結點(不能遍歷連結串列)
思路: 由於無頭單鏈表只能找到某一個結點的next結點,而不能不利用遍歷的方法找到某一個結點的prev結點,所以之前的遍歷方法在此處不能使用。我們雖然不能在該結點前插入結點,但是能在該結點後插入結點,所以先在該結點後插入結點,再將該結點與新插入結點的值交換即
單鏈表的建立,節點的插入,刪除,遍歷(未完善版)
#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; typedef struct Lin
單鏈表的尾插,頭插,遍歷,查找和插入
asr bsp 數組創建 spa adc visit create eat == 單鏈表的基本結構 function Node(val,next){ this.val = val; this.next = next || null; } 1.鏈表的創建
輸出單鏈表中倒數第k個結點(Java版)
題目:輸入帶頭結點的單鏈表L,輸出該單鏈表中倒數第k個結點。單鏈表的倒數第0個結點為該單鏈表的尾指標。要求只能遍歷一次單鏈表。 解題思路: 如果不要求只能遍歷一次單鏈表,我們可以先遍歷一次單鏈表
JAVA 一個簡單的檔案寫入程式碼(遍歷資料夾獲取所有檔案、寫入緩衝池、獲取檔案絕對路徑、按字尾名過濾檔案)
JAVA 一個簡單的檔案寫入程式碼(遍歷資料夾獲取所有檔案、寫入緩衝池、獲取檔案絕對路徑、按字尾名過濾檔案) package com.test; /* * vika 11-14 * 將固定資料夾中的固定格式的檔案的絕對路徑寫入一個txt檔案中 */ import
線性表的輸入輸出插入刪除查詢(順序表示)
#include <stdio.h> #include <stdlib.h> #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define ok 1 #define error -1 #def
二叉搜尋樹Java實現(查詢、插入、刪除、遍歷)
1 class Node { 2 int key; 3 int value; 4 Node leftChild; 5 Node rightChild; 6 7 public Node(int key, int value) { 8
資料結構--C語言--逆序建立單鏈表,遍歷單鏈表,在單鏈表第5個元素前插入一個值為999的元素,刪除單鏈表第5個元素
#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LEN sizeof(struct LNode) struct LNode{ int data; struct LNode
刪除一個無頭單鏈表的非尾結點(不能遍歷連結串列)
思路: 之前刪除連結串列中某個位置的結點必須找到該節點的prev結點,並且需要遍歷,而此題不能遍歷,則之前的方法行不通。那麼就想到了另一種方法——替換法。 替換法: 既然要刪除該結點,那麼我們可以將該結點的next結點的值賦給該結點,再刪除這個nex
從無頭單鏈表中刪除節點
刪除無頭單鏈表: 程式實現很簡單,主要是思路如果打不開的話,就無從下手。 如果是帶有頭節點的連結串列,直接從頭部遍歷,找到需要刪除的節點,然後直接刪除 刪除的方式,加入目前的節點為node ,前一個節點即為pre pre->next = node->next;
逆置單鏈表、替換法之無頭單鏈表的插入與刪除
1. 從尾到頭列印單鏈表 我們知道,單鏈表只能夠通過前面結點來找到後一個結點,不能直接通過後一個結點來找前一個結點,所以如何先列印後面的元素,在列印前面的元素。可以想到運用遞迴,設頭結點為first 第一次函式呼叫:first->next 第
無頭單鏈表的插入刪除問題
對於單鏈表的插入刪除問題,在之前的文章中已經介紹過,今天要介紹的是無頭單鏈表的插入和刪除問題。這裡所指的無頭單鏈表指的是假設我們只知道單鏈表的某個部分,而不是全部,要對其進行插入和刪除操作,如下圖: 那麼,對於這種的單鏈表,我們如何對其進行插入和刪除操作呢?首先我們來看
單鏈表的讀取、插入與刪除
數據結構 單鏈表 鏈表是由一個個結點構成,而每一個結點都是由存儲數據的數據域以及存儲下一個結點地址的地址域兩部分構成。 鏈表的一大優點就是,可以在任意兩個數之間毫無限制的插入無限多的數據。在很多時候,我們都需要對數據做個查找工作,就比如,一個班的同學去上課,結果老師發現人數不對,於是就開始點名,
單鏈表 C++ 實現 - 含虛擬頭節點
:link 和數 std inpu amp move brush 第一個 pre 本文例程下載鏈接: 鏈表 vs 數組 鏈表和數組的最大區別在於鏈表不支持隨機訪問,不能像數組那樣對任意一個(索引)位置的元素進行訪問,而需要從頭節點開始,一個一個往後訪問直到查找到目標
無頭單鏈表
一、連結串列概念 1、連結串列:一種鏈式儲存的線性表,用一組地址任意的儲存單元存放線性表的資料元素,稱儲存單元為一個節點 2、連結串列有單鏈表、雙鏈表和雙向迴圈連結串列,每種連結串列都有無頭和帶頭兩種,帶頭就是頭結點不存放資料元素 二、原始碼 1、linklist.h #ifnd
單鏈表的創建,插入,刪除,遍歷
遍歷 clas 創建 delete can i++ info def 尾指針 1 #include<stdio.h> 2 #include<iostream> 3 #include<malloc.h> 4 #define
單鏈表的建立、插入和刪除操作
單鏈表的建立、插入和刪除操作 #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct List { ElemType data;
【LeetCode-面試演算法經典-Java實現】【019-Remove Nth Node From End of List(移除單鏈表的倒數第N個節點)】
原題 Given a linked list, remove the nth node from the end of list and return its head. F