單鏈表的基本操作(增加,查詢,刪除,修改)-- C 語言
#include <stdio.h> #include <stdlib.h> typedef struct Link { // 資料域 int data; // 指標域,指向下一個相同型別的結點 struct Link *next; }nodeLink; // *Link 是頭指標的哇 // 初始化 void initLink(nodeLink *L) { L = (nodeLink *)malloc(sizeof(nodeLink)); if(!L) { printf("建立記憶體空間失敗\n"); exit(0); } printf("建立成功\n"); } //建立賦初值連結串列 void createLink(nodeLink *L) { nodeLink *temp = (nodeLink *)malloc(sizeof(nodeLink)); // 首元節點初始化 for(int i=1;i<5;i++) { L->data = i; L->next = NULL; temp->next = L; temp = temp->next; L= (nodeLink *)malloc(sizeof(nodeLink)); } printf("初始化成功\n"); } // 展示 void display(nodeLink *L) { nodeLink *temp = L; while(temp) // 不是 temp->next,而是 temp 本身不為空 { printf("%d,",temp->data); temp = temp->next; } printf("\n"); } // 查詢 // loc 是要查詢的元素 void check(nodeLink *L,int loc) { int i=0; while(L) { if(i == loc) { printf("要查詢的元素:%d\n",L->data); } L=L->next; i++; } } // 插入 // elem 是你要插入的值 ,loc 是要插入的位置 void insertLink(nodeLink *L,int elem,int loc) { int i=0; nodeLink *p; p = (nodeLink *)malloc(sizeof(nodeLink)); // 一個新的節點 while(L->next) { if(i == loc) { p->next = L->next; L->next = p; p->data = elem; printf("插入成功!\n"); break; } else { L = L->next; i++; } } } // 刪除 // loc 是要刪除的位置 void deleteElem(nodeLink *L,int loc) { int i=0; while(L->next) { if(i == loc) { L->next = L->next->next; printf("刪除成功!\n"); break; } else { L = L->next; i++; } } } // 修改 // elem 是要修改的值,loc 是修改值的位置 void update(nodeLink *L,int elem,int loc) { int i=0; while(L->next) { if(i == loc) { L->data = elem; printf("修改成功!\n"); break; } else { L = L->next; i++; } } } main() { nodeLink L; initLink(&L); createLink(&L); display(&L); check(&L,2); insertLink(&L,200,2); display(&L); deleteElem(&L,2); display(&L); update(&L,1024,2); display(&L); }
相關推薦
Java單鏈表基本操作(五)--查詢倒數第K個節點
package listnode; /** * @author Gavenyeah * @date Start_Time:2016年4月1日 上午11:47:44 * @date End_Ti
單鏈表 基本操作(元素遞增排序)
題目描述: 有一個帶頭節點的單鏈表L(至少有一個數據節點),設計一個演算法使其元素遞增有序排列。 解題思路: 由於單鏈表L中有一個以上的資料節點,首先構造一個只含有頭結點和首節點的有序單鏈表(只含有一個數據節點的單鏈表一定是有序的),然後掃描單鏈表L餘下的節點(由P指向),在有序單鏈表中
單鏈表基本操作(刪除連結串列中最大元素)
題目描述: 設計一個演算法,刪除一個單鏈表L中元素值最大的節點(假設這樣的節點唯一) 解題思路: 在單鏈表中刪除一個節點先要找到它的前驅節點,用指標p掃描整個單鏈表,pre指向節點p的前驅節點,在掃描時用maxp指向data域值最大的節點,maxpre指向maxp所指節點的前驅節點,當連
Java單鏈表基本操作(七)--排序
單鏈表的插入排序比陣列麻煩,因為每次都都要從頭節點開始往後遍歷,頭節點也需要單獨處理 package listnode; /** * @author Gavenyeah * @date St
Java單鏈表基本操作(八)--合併兩個有序單鏈表
package listnode; /** * @author Gavenyeah * @date Start_Time:2016年4月1日 下午15:01:47 * @date End_Ti
Java單鏈表基本操作(六)--刪除重複節點;
package listnode; public class DeleteDuplecate_SingleList { public static void main(String[] arg
Java單鏈表基本操作(四)--單鏈表反轉
單鏈表反轉是筆試面試中考察最多的演算法之一,是單鏈表裡必須要熟練掌握的演算法。 /** * @author Gavenyeah * @date Start_Time:2016年4月1日 上午
單鏈表的基本操作(增加,查詢,刪除,修改)-- C 語言
#include <stdio.h> #include <stdlib.h> typedef struct Link { // 資料域 int data; // 指標
C++ 單鏈表基本操作分析與實現 連結串列 連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成,結
連結串列 連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域。 相比於線性表
單鏈表 簡單題(單鏈表基本操作)
題目描述: 有一個帶頭結點的單鏈表L=(a1,b1,a2,b2,......an,bn),設計一個演算法將其拆分成兩個帶頭結點的單鏈表L1和L2,其中L1=(a1,a2,a3...an),L2=(b1,b2,b3....bn),要求L1使用L的頭結點。 解題思路: 利用原單鏈表L中的所有
資料結構之連結串列(1):單鏈表基本操作
1.前言 1.1宣告 文章中的文字可能存在語法錯誤以及標點錯誤,請諒解; 如果在文章中發現程式碼錯誤或其它問題請告知,感謝! 2.關於連結串列 2.1什麼是連結串列 連結串列可以看成一種在物理儲存單元上的非連續、非順序儲存的資料結構,該資
單鏈表的基本操作(讀取、插入、刪除)及優缺點總結
1.單鏈表的讀取 獲取連結串列第i個數據的演算法思路: 1. 宣告一個指標p指向連結串列的第一個結點,初始化j從1開始; 2. 當j< i 時,遍歷連結串列,讓p的指標向後移動,不斷指向下一結點,j累加1; 3. 若到連結串列末尾p為空,說明第i個
單鏈表基本操作的C語言實現(鏈式儲存結構)
#include<stdio.h> #include<stdlib.h> typedef int DataType; typedef struct Node{ DataType data; struct Node *next; }
資料結構(c語言)——線性單鏈表基本操作
#include <stdio.h> #include <stdlib.h> typedef int Element; typedef char(*Status)[10]; #define ERROR "error" #define OK "ok"
C 資料結構中單鏈表基本操作
C中的typedef C中的typedef關鍵字作用是為一種資料型別定義一個新名字,這樣做的目的有兩個,一是給變數定義一個易記且意義明確的新名字,如: typedef unsigned char BYTE; 把unsigned char型別自命名為BYTE。另一個目的是
6-1 順序表基本操作 (10 分)
本題要求實現順序表元素的增、刪、查詢以及順序表輸出共4個基本操作函式。L是一個順序表,函式Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在順序表的pos位置插入一個元素e(pos應該從1開始),函式Status ListDelete_Sq(S
【資料結構】單鏈表-----基本操作
刪除指定位置的節點 void Erase(pList * pplist, pNode pos) { assert(pplist != NULL); assert(pos != NULL); if (*pplist == pos)//如果指向第一個節點
資料結構篇:單鏈表基礎操作(二)
已知帶頭結點的單鏈表,存放一組整型數 ①建立n個元素的單鏈表 ②計算連結串列中值大於x的結點的個數,int countx(lnode *head,int x) ③兩個連結串列ha,hb存放整型數,每個連結串列中無相同元素,hc=ha∩hb,即ha和hb中相同元素放入hc中,v
6-2 順序表基本操作 (10 分)
6-2 順序表基本操作 (10 分) 本題要求實現順序表元素的增、刪、查詢以及順序表輸出共4個基本操作函式。L是一個順序表,函式Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在順序表的pos位置插入一個元
c++學習筆記—單鏈表基本操作的實現
用c++語言實現的單鏈表基本操作,包括單鏈表的建立(包括頭插法和尾插法建表)、結點的查詢、刪除、排序、列印輸出、逆置、連結串列銷燬等基本操作。 IDE:vs2013 具體實現程式碼如下: #include "stdafx.h" #include <malloc.h