資料結構 單向鍊錶的實現

2021-10-05 06:22:38 字數 2800 閱讀 4813

單向鍊錶的實現

記錄 非常菜雞的開始

節點中定義節點時 成員變數要寫struct 因為沒寫報了一堆錯

老師節點裡的node都是變數型別,只有linknode內部是指標型別,內部使用指標,指標大小為4個位元組 可以分配記憶體很方便。

注意teacher輸入的時候為位址 各種指標型別的轉換

main函式中輸入為位址 強制轉換成節點指標型別

每個函式讀取鍊錶list時是鍊錶型別void 用的時候要轉換成頭指標型別

釋放完記憶體記得指向0

test.cpp為測試的程式

#include

#include

#include

#include

"link.h"

typedef

struct teacher

teacher;

intmain()

while

(link_length

(list)!=0

)link_clear

(list)

;link_destory

(list)

;}

標頭檔案

#pragma once

#include

#include

#include

typedef

void linklist;

typedef

struct linknode

linknode;

typedef

struct tlink

tlink;

linklist*

link_creat()

;void

link_clear

(linklist* list)

;void

link_destory

(linklist* list)

;int

link_length

(linklist* list)

;int

link_insert

(linklist* list, linknode* item,

int pos)

;linknode*

link_delete

(linklist* list,

int pos)

;linknode*

link_get

(linklist* list,

int pos)

;

.c檔案

#include

#include

#include

#include

"link.h"

linklist*

link_creat()

tmp->length =0;

tmp->head.next =

null

;printf

("creat finish\n");

return tmp;

}void

link_clear

(linklist* list)

void

link_destory

(linklist* list)

free

(tmp)

; tmp =

null

;//釋放完記憶體記得指向零

printf

("creat destory\n");

return;}

intlink_length

(linklist* list)

intlink_insert

(linklist* list, linknode* item,

int pos)

linknode* cur =

&(tmp->head)

;//注意型別轉換

int i =0;

for(i =

0;i < pos;i++

) item->next = cur->next;

cur->next = item;

tmp->length++

;printf

("finish insert\n");

return0;

}linknode*

link_delete

(linklist* list,

int pos)

linknode* cur =

&(tmp->head)

; linknode* ret=

null

;int i =0;

for(i =

0;i < pos;i++

) ret = cur->next;

cur->next = ret->next;

tmp->length--

;printf

("finish delete\n");

return ret;

}linknode*

link_get

(linklist* list,

int pos)

linknode* cur =

&(tmp->head)

;//linknode* ret = null;

int i =0;

for(i =

0;i < pos;i++

)return cur->next;

}

php實現資料結構 單向鍊錶

什麼是單向鍊錶 鍊錶是以鏈式儲存資料的結構,其不需要連續的儲存空間,鍊錶中的資料以節點來表示,每個節點由元素 儲存資料 和指標 指向後繼節點 組成。單向鍊錶 也叫單鏈表 是鍊錶中最簡單的一種形式,每個節點只包含乙個元素和乙個指標。它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。它的儲存...

資料結構 單向鍊錶(java實現)

public class node 為節點追加節點 當前節點 node currentnode this while true 賦值當前節點 currentnode nextnode 把需要追回的節點追加為找到的節點的下乙個節點 currentnode.next node return this 刪...

php實現資料結構 單向鍊錶

什麼是單向鍊錶 鍊錶是以鏈式儲存資料的結構,其不需要連續的儲存空間,鍊錶中的資料以節點來表示,每個節點由元素 儲存資料 和指標 指向後繼節點 組成。單向鍊錶 也叫單鏈表 是鍊錶中最簡單的一種形式,每個節點只包含乙個元素和乙個指標。它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。它的儲存...