鍊錶基本操作

2021-08-14 01:30:23 字數 1390 閱讀 5245

鍊錶就是c中利用結構體,將資料和下乙個結構體的位址封裝在乙個結構體中形成乙個節點,這些節點組合起來就是乙個基礎的鍊錶,根據需要可以擴充套件其中的內容來實現不同的需求。

實現乙個鍊錶需要定義節點,建立,初始化,插入,刪除這些基本操作。

#include "stdafx.h"

#include "stdlib.h"

#include "malloc.h"

#define ok 0

#define erro 1

typedef

int datatype;

typedef

int status;

typedef

struct lnode lnode,*lpoint;

//表尾插入

status createlink(lpoint &l, int n, datatype *e)

r->next = null; //無節點插入記得置為null指標

return ok;

}status insertlink(lpoint &l, int i, datatype e)

//這些變化需先判斷再執行,方便下乙個越界判斷

if (!p->next || counter>i-1)

return erro; //超出範圍

//p->next ==null 說明往後越界,counter >i-1 說明往前越界

if (!(in = (lpoint)malloc(sizeof(lnode))))

return erro;//記憶體不足

in->data = e;

in->next = p->next;

p->next = in;

return ok;

}status dellink(lpoint l, int i, datatype e)

if (!p->next || counter > i - 1)

return erro;//越界

del = p->next;

p->next = del->next;

e = del->data;

free(del);

return ok;

}void printlink(lpoint l)

printf("null\n");

}int main()

; lpoint link = null;

createlink(link, 5, s);

printlink(link);

return

0;}

這是乙個帶頭結點的鍊錶,基本操作都差不多。注意若是c來實現的話,頭結點需要定義為二級指標,因為在函式裡面改變了指標的指向,c++可以傳引用,c就只能用二級指標來指了。

鍊錶基本操作

include include string h include typedef struct stust void xj st h 生成單鏈表 l l null void shc st h 輸出鍊錶 printf d n h d void chr st h 按大小插入元素 else h h l v...

鍊錶基本操作

動態記憶體的相關知識int p null 定義指標變數 p int malloc sizeof int 申請記憶體空間,並且進行強制型別轉換 p 3 使用指標變數 typedef struct list typedef struct listnode listpointer struct listn...

鍊錶基本操作

一 什麼是鍊錶 鍊錶,又稱為線性表的鏈式儲存結構,是一種離散儲存。因為線性表的順序儲存結構在增刪上需要移動大量元素,耗費大量時間。進而出現了通過隨機儲存,指標記錄位址的離散儲存。即,有空,資料就存在 只需記錄其位址即可。大致思路可參考出自 大話資料結構 的下圖。二 鍊錶基本內容 三 基本 1.結構體...