1. 程式人生 > >線性連結串列的查詢插入刪除演算法

線性連結串列的查詢插入刪除演算法

插入操作具體演算法
這裡寫圖片描述

Status ListInsert_L(Linklist &L,int i,Elemtype e){
//在帶頭結點的單鏈表L中第i個位置之前插入元素e
     LinkList p=L;//p為移動指標,指向頭結點  
     LNode *s;
     int j=0;
     for(p&&j<i-1) {
     //找到第i-i個結點
         p=p->next;
         ++J;
     }
     if(p!||j>i-1) return ERROR; //插入位置不合理
     s=(LNode*
)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p-next=s; return OK; }

刪除操作具體演算法:
這裡寫圖片描述

Status ListInsert_L(Linklist &L,int i,Elemtype &e){
//刪除在帶頭結點的單鏈表L中第i個位置元素e
     LinkList p=L;
     LNode *q;
     int j=0;

     if(p->next&&j<i-1){
     //尋找第i個結點並令p指向其前驅
p=p->next; ++j } if(!(p->next)||j>i-1) return ERROR; q=p->next; p->next=q->next; e=q->data; free(q); return OK;

相關推薦

線性連結串列查詢插入刪除演算法

插入操作具體演算法 Status ListInsert_L(Linklist &L,int i,Elemtype e){ //在帶頭結點的單鏈表L中第i個位置之前插入元素e LinkList p=L;//p為移動指標,指向頭結點

線性連結串列插入刪除

程式碼功能:實現連結串列插入與刪除的基本功能 線性表插入與刪除操作 Input 第一行給出線性表內現有資料元素的數目N,1<=N<=10;第二行給出N個整數:a1、a2、a3…aN,

連結串列插入 刪除 排序 倒敘

#include <iostream> using namespace std; #include <stdio.h> #include <stdexcept> #include <conio.h> #include <

順序連結串列插入刪除等操作 C語言

//順序表的操作 #include "stdio.h" #include "string.h" #include "stdlib.h" //定義表的最大長度 #define MAXLEN 100 //定義結點的關鍵字 typedef struct   {char key[1

資料結構-靜態連結串列及其插入刪除操作

什麼是靜態連結串列 我們平常提及的連結串列一般指的是動態連結串列,是使用指標將一個一個的結點連起來,除了動態連結串列之外,還有靜態連結串列,這種連結串列用陣列來描述,主要為了解決沒有指標或者不用指標的情況下具備連結串列插入刪除操作便捷的特性。 靜態連結串列中

單鏈表(線性連結串列)資料元素插入刪除

資料元素的插入:為插入資料元素x,首先要生成一個數據域為x的結點,然後插入在單鏈表中,根據插入操作的邏輯定義,還需要修改結點a中的指標域,令其指向節點x,而結點x中的指標域應指向結點b,從而實現3個元素a,b和x之間邏輯關係的變化。 資料元素的刪除:線上性

用陣列來實現連結串列插入查詢刪除功能

假設有100名員工,他們分別在10家公司中,現在要模擬他們的入職(插入)、資訊查詢(查詢)、離職(刪除)等管理操作行為,用陣列來代替連結串列實現,具體程式碼如下:#include "stdafx.h" #include <stdlib.h> #define EM

資料結構 線性連結串列的創立及其基本操作初始化、遍歷、銷燬、判空、求表長、刪除插入

最近寫了個數據結構的單鏈表,其中包括十來個基本操作演算法,包括了建立單鏈表、刪除、插入、定位、遍歷等基本的操作。在VS上運行了一下,可以通過,感覺還不錯,和大家分享一下! 我是建立了一個C++專案,在專案下寫的,你們也可以建立專案把下面的東西複製到編譯器上試試! 第一部分是

閉散列表上的插入查詢刪除演算法

#include <stdio.h> #include <stdlib.h> #define MAXSIZE 11 //雜湊表對的長度 #define key 11 // 除留取餘法 void Hash__Insert(int Hash[],int x) { in

C語言連結串列節點插入刪除

線性表操作 順序表是我們資料結構中的基本儲存形式,現在給定一個順序表,有如下操作: Insert X Y:在順序表中X位置插入Y元素,遍歷輸出當前順序表的所有元素。 Delete X:刪除順序表中的X元素,如果有多個X元素,只刪除第一個X,遍歷輸出當前順序的所有

連結串列插入刪除操作詳解(C語言實現+詳解註釋)

連結串列的基本操作中,連結串列結點的插入和刪除相對比較複雜,需根據結點插入位置的不同,使用合理的方法在不破壞原連結串列結構的前提下將其插入到連結串列中。 本節將詳解介紹這兩種操作的具體實現方法,讀者只需牢記實現步驟,即可輕鬆解決這兩大難點。 連結串列中插入結點 連結串列中插入結點,根據插入位置的不同,可

連結串列查詢(線性表)

題目描述 已知非空線性連結串列由list指出,鏈結點的構造為(data,link).請寫一演算法,將連結串列中資料域值最小的那個鏈結點移到連結串列的最前面。要求:不得額外申請新的鏈結點 輸入 輸入長度n:6 輸入資料:4 2 6 88 34 6 輸出 2 4 6

資料結構與演算法-----單向線性連結串列(逆轉和反向列印)

單向連結串列沒有前指標,所以實現反向列印還是比較麻煩,我們這裡使用遞迴原理解決此問題。 這裡提到逆轉,也就是將單鏈表的next指標指向前一個節點,我們也使用遞迴實現。 // 練習:實現單向線性連

雙向連結串列插入刪除節點

#include <stdio.h> #include <malloc.h> typedef struct linknode//定義雙向連結串列 { int data; linknode *prior,*next; } Node,*

C語言 連結串列插入刪除

#include <stdio.h>#include <malloc.h>#include "SeqList.h"typedef unsigned int TSeqListNode;typedef struct _tag_SeqList{    int

連結串列插入刪除,顯示,排序

#include <stdio.h> #include <stdlib.h> typedef struct stu{ int value; struct stu *next

java實現--單向連結串列插入刪除

一、連結串列結構: (物理儲存結構上不連續,邏輯上連續;大小不固定)           概念:  鏈式儲存結構是基於指標實現的。我們把一個數據元素和一個指標稱為結點。        資料域:存數資料元素資訊的域。        指標域:儲存直接後繼位置的域。鏈式儲存結構是用

雙向連結串列插入刪除圖解

雙向連結串列的插入 第一步:首先找到插入位置,節點 s 將插入到節點 p 之前 第二步:將節點 s 的前驅指向節點 p 的前驅,即 s->prior = p->prior; 第三步:將節點 p 的前驅的後繼指向節點 s 即 p->pr

【資料結構】順序表、單鏈表、迴圈連結串列插入刪除

寫在前面的 順序表 插入 刪除 定位 單鏈表 插入 刪除 總結 寫在前面的        在複習資料結構的過程中對於連結串列的操作總是容易忘記,時不時的就不知道具體的該怎麼

golang基礎-結構體、結構體連結串列前後插入、節點新增刪除

結構體定義 刪除節點 新增節點 結構體定義 struct 用來自定義複雜資料結構 struct裡面可以包含多個欄位(屬性) struct型別可以定義方法,注意和函式的區分 struct型別是值型別 struct型別可以