資料結構 線性表 鍊錶

2021-10-02 01:18:57 字數 2007 閱讀 9223

在之前了解完什麼是資料結構之後

【資料結構】線性表——順序表(陣列)

我們再來看看線性結構另外一種實現方式

鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過「鏈」的方式將資料進行連線,而這個「鏈」的實現就是通過指標來實現的。

鍊錶的連續儲存方式

對於抽象資料型別來說,每一種資料結構都有自己的資料集以及操作集,而鍊錶的資料集由兩個部分組成,而操作集因各人對於資料集的操作不一致,下面提供乙個本人瞎搞的資料集,使用結構體!:

**段如下:

templateclass linklist

操作集因人而異,下面提供一些基本的操作集:

**段如下:

templateclass linklist

;

3.1.資料集

templatelinklist::linklist()

templatelinklist::linklist(type data,int sizeofnumpy)

}templatelinklist::~linklist()

3.2.操作集

3.2.1.檢查鍊錶長度

templateint linklist::length()

嗯......沒有什麼好說的,長度可以在每次對鍊錶進行操作之後增加或者減少,在後面的操作中就可以看見。

3.2.2.插入資料

templatevoid linklist::insert(type data, int insertopsition)

lnode* linknode = new lnode;

linknode->data = data;

linknode->list = tempnode->list;

tempnode->list = linknode;

nodenumber += 1;

}templatevoid linklist::insert(type data, int sizeofnumpy, int insertopsition)

插入資料分為兩種,一種是插入乙個資料,一種是插入一段資料,只要插入乙個資料完成了,插入一堆資料就是重複呼叫的啦,要注意插入乙個新的節點的方式:

3.2.3.刪除資料

templatevoid linklist::delete(int inseropsition)

if (p == null || p->list == null) throw "location";

else

nodenumber -= 1;

}templatevoid linklist::delete_value(int value)

count += 1;

}}

刪除也是分刪除某個位置的值以及刪除資料裡出現的同乙個值。刪除的操作和插入是反過來的:

3.2.4.顯示煉表裡的資料

templatevoid linklist::printlist()

}

3.2.5.查詢某個值所在的位置

templatevoid linklist::find_value(int value)

}

就是遍歷

資料結構 線性表(順序表 鍊錶)

線性表 1 線性表是一種邏輯結構,表示一種一對一的邏輯關係,除首節點和尾節點,每個結點只有乙個前驅結點和乙個後繼結點 2 兩種實現的物理結構 順序儲存,鏈式儲存 順序表 1 定義 用一組位址連續的儲存單元,一次儲存線性表中的元素,使得邏輯位置相鄰的元素物理位置也相鄰。2 特點 順序表元素的位序從1開...

資料結構 線性表 鍊錶實現

ifndef chain h define chain h include using namespace std vs平台下自己定義了nullptr null 0 但是在gcc下沒有定義 ifndef nullptr define nullptr 0 endif 鍊錶的節點元素類 template...

資料結構 線性表 鍊錶實現

include include define ok 1 define error 0 typedef int status status是函式的型別,其值是函式結果狀態ok等 typedef int elemtype elemtype型別根據實際情況而定這裡設為int型 typedef struct...