在之前了解完什麼是資料結構之後
【資料結構】線性表——順序表(陣列)
我們再來看看線性結構另外一種實現方式
鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過「鏈」的方式將資料進行連線,而這個「鏈」的實現就是通過指標來實現的。
鍊錶的連續儲存方式
對於抽象資料型別來說,每一種資料結構都有自己的資料集以及操作集,而鍊錶的資料集由兩個部分組成,而操作集因各人對於資料集的操作不一致,下面提供乙個本人瞎搞的資料集,使用結構體!:
**段如下:
操作集因人而異,下面提供一些基本的操作集:templateclass linklist
**段如下:
3.1.資料集templateclass linklist
;
3.2.操作集templatelinklist::linklist()
templatelinklist::linklist(type data,int sizeofnumpy)
}templatelinklist::~linklist()
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.顯示煉表裡的資料
3.2.5.查詢某個值所在的位置templatevoid linklist::printlist()
}
就是遍歷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...