線性表的鏈式儲存又稱單鏈表。
特點:
不需要使用位址連續的儲存單元
插入和刪除操作不需要移動元素
非隨機訪問
附加指標域,存在浪費儲存空間的缺點
/*
linklist.h
*/#pragma once
#include
using
namespace std;
/*節點結構體
*/template
<
class
datatype
>
struct node
node
(datatype data)};
template
<
class
datatype
>
class
linklist
;
/*
linklist.cpp
*/#include
"linklist.h"
// template
<
class
datatype
>
linklist
::linklist()
// template
<
class
datatype
>
linklist::~
linklist()
p =null
;delete q;
head =
null
;delete p;
delete head;
}//返回鍊錶長度
template
<
class
datatype
>
int linklist
::length()
// 按值查詢第一次的出現位序
template
<
class
datatype
>
int linklist
::locateelement
(datatype x)
i++; p = p-
>next;
}// 如果鍊錶中不含該資料,返回0
return0;
}// 按位查詢
template
<
class
datatype
>
datatype linklist
::valueofindex
(int i)
// 遍歷查詢指定節點
node
*p = head;
while
(i--
)return p-
>data;
}// 尾插法
template
<
class
datatype
>
void linklist
::tailinsert
(datatype data)
// 尾節點指向新節點
p->next = node;
// length++
;return;}
// 頭插法
template
<
class
datatype
>
void linklist
::headinsert
(datatype data)
// 指定位序處插入資料
template
<
class
datatype
>
bool linklist
::insert
(datatype data,
int i)
// 尋找前驅指標
node
*p = head;
for(
int j =
1; j < i; j++
)// 構造新節點
node
*node =
new node
(data)
;// 新節點的指標指向下乙個節點
node-
>next = p-
>next;
// 前驅指標指向新節點
p->next = node;
// length++
;return
true;}
// 判空
template
<
class
datatype
>
bool linklist
::isempty()
// 按位刪除
template
<
class
datatype
>
bool linklist
::deletebyindex
(int i)
// 尋找前驅指標
node
*p = head;
for(
int j =
1; j < i; j++
)// 取出即將刪除的節點
node
*temp = p-
>next;
// 前驅指標指向要刪除的節點的下乙個節點
p->next = temp-
>next;
// 釋放指標
delete temp;
// length--
;return
true;}
// 遍歷輸出
template
<
class
datatype
>
void linklist
::print()
cout << endl;
}
資料結構之單鏈表(帶頭節點)
今天來聊聊單鏈表。單鏈表是以節點存的鏈式結構,分為帶頭節點和不帶頭節點的單鏈表。單鏈表中的節點包括data域和next域,data域儲存元素的值,next域則儲存下乙個節點的位址。單鏈表中的各個節點在記憶體中不一定是連續儲存的,儲存形式如下圖所示 從圖中可以看出,單鏈表中的各個節點並不是連續儲存的。...
資料結構 帶頭節點的單鏈表的表示和實現
includeusing namespace std typedef struct lnode lnode,linklist 初始化鍊錶,頭節點資料域存放鍊錶長度 bool initlist linklist l 建立鍊錶 尾插法 void createlist linklist l r next ...
資料結構 帶頭結點的單鏈表
比較坑爹的基礎啊,大把時間浪費在建構函式上,建構函式 出生決定命運!自己解決的bug,感覺還不錯。其實程式的核心是演算法,演算法建立在資料結構的基礎之上。大部分的程式設計師現在學的基本都是規則,而不是創造。但掌握了規則,也能創造很多財富。重新鞏固我弱爆了的資料結構,沒敲完資料結構的程式設計師不是好領...