鍊錶定義
使用結點來儲存資料元素。
鍊錶優缺點:
鍊錶中各資料元素的結點位址則不要求是連續的,因此必須同時儲存元素之間的邏輯關係
鍊錶的插入、刪除操作都比較方便,只需修改指標域的指向即可。
/*
單鏈表*/#include
#include
using
namespace std;
//建立結點
template
<
class
datatype
>
struct node
;template
<
class
datatype
>
class
linklist
;///
/// 建構函式
///
template
<
class
datatype
>
linklist
::linklist()
///
/// 建構函式
///
template
<
class
datatype
>
linklist
::linklist
(datatype arr,
int n)
}///
/// 析構函式
/// 類的析構函式是類的一種特殊的成員函式,它會在每次刪除所建立的物件時執行。
/// 析構函式有助於在跳出程式(比如關閉檔案、釋放記憶體等)前釋放資源。
///
template
<
class
datatype
>
linklist::~
linklist()
}///
/// 獲取資料長度
///
template
<
class
datatype
>
int linklist
::length()
return count;
}///
/// 獲取資料
///
template
<
class
datatype
>
datatype linklist
::get
(int i)
if(p ==
null
)throw
"location"
;else
return p-
>data;
}///
/// 定位資料
///
template
<
class
datatype
>
int linklist
::locate
(datatype x)
return0;
}///
/// 新增/插入資料
///
template
<
class
datatype
>
void linklist
::insert
(int i, datatype x)
if(p ==
null
)throw
"location"
;else
}///
/// 刪除資料
///
template
<
class
datatype
>
datatype linklist
::delete
(int i)
if(p ==
null
|| p-
>next ==
null
)throw
"location"
;else
}///
/// 列印列表元素
///
///
template
<
class
datatype
>
void linklist
::printlist()
}int
main()
線性結構之單鏈表
一.引入 單鏈表是用一組任意的儲存單元存放線性表的元素,這組儲存單元可以連續也可以不連續,甚至可以零散分布在記憶體中的任意位置。為了能正確表示元素之間的邏輯關係,每個儲存單元在儲存資料元素的同時,還必須儲存其後繼元素所在的位址資訊,這個位址資訊成為指標,這兩部分組成了資料元素的儲存映像,成為結點,其...
1 資料結構 線性結構之單鏈表
一 定義 單向鍊錶 單鏈表 時鍊錶的一種,它由節點組成,每個節點都包含下乙個節點的指標。1 定義節點類 定義節點類 struct node 2 定義單鏈錶類class slist 二 實現 單鏈表的實現方式有很多種,常見的有 1 帶頭結點的單鏈表 2 不帶頭結點的單鏈表 3 帶頭節點和尾節點的單鏈表...
資料結構 線性結構 反向輸出單鏈表
要求 有帶頭節點的單鏈表l,編寫演算法實現從尾到頭反向輸出每個結點的值。分析 這裡有一種思路是利用棧,在正向遍歷單鏈表的時候進行入棧,然後遍歷完成之後依次出棧,既可實現反向輸出。既然可以用棧,那麼也可以用遞迴的方式來實現。然而遞迴是利用的棧,實質上是相同的。遞迴的時候,系統需要設立乙個 工作棧 作為...