單鏈表編程實(shí)例
單鏈表(Singly Linked List)是一種常見的數(shù)據(jù)結(jié)構(gòu),它由節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)和指向下一個(gè)節(jié)點(diǎn)的指針。單鏈表的特點(diǎn)是插入和刪除操作效率高,但是查找操作效率較低。單鏈表的基本操作包括
單鏈表(Singly Linked List)是一種常見的數(shù)據(jù)結(jié)構(gòu),它由節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包含數(shù)據(jù)和指向下一個(gè)節(jié)點(diǎn)的指針。單鏈表的特點(diǎn)是插入和刪除操作效率高,但是查找操作效率較低。
單鏈表的基本操作包括創(chuàng)建、插入、刪除和遍歷。在創(chuàng)建單鏈表時(shí),需要定義一個(gè)頭節(jié)點(diǎn),該節(jié)點(diǎn)可以不包含數(shù)據(jù),只是作為鏈表的起始位置。插入操作包括在鏈表的某個(gè)位置插入新節(jié)點(diǎn),可以在頭部、尾部或者中間進(jìn)行插入。刪除操作則是移除鏈表中的某個(gè)節(jié)點(diǎn),同樣可以在頭部、尾部或者中間進(jìn)行刪除。遍歷操作是按順序訪問鏈表中的每個(gè)節(jié)點(diǎn),依次輸出節(jié)點(diǎn)的數(shù)據(jù)。
下面通過一個(gè)具體的編程實(shí)例來展示單鏈表的應(yīng)用。
假設(shè)有一個(gè)學(xué)生成績(jī)管理系統(tǒng),需要記錄每個(gè)學(xué)生的姓名和成績(jī)。我們可以使用單鏈表來存儲(chǔ)這些數(shù)據(jù),方便進(jìn)行增刪改查操作。
首先,定義一個(gè)節(jié)點(diǎn)結(jié)構(gòu)體,包含學(xué)生姓名和成績(jī)的信息,以及指向下一個(gè)節(jié)點(diǎn)的指針。
```cpp
struct Node {
string name;
int score;
Node* next;
};
```
然后,定義一個(gè)鏈表類,包含鏈表的頭節(jié)點(diǎn)和相關(guān)操作的方法。
```cpp
class LinkedList {
private:
Node* head;
public:
LinkedList() {
head new Node();
head->next nullptr;
}
void insert(string name, int score) {
Node* newNode new Node();
newNode->name name;
newNode->score score;
newNode->next nullptr;
Node* curr head;
while (curr->next ! nullptr) {
curr curr->next;
}
curr->next newNode;
}
void remove(string name) {
Node* prev head;
Node* curr head->next;
while (curr ! nullptr) {
if (curr->name name) {
prev->next curr->next;
delete curr;
break;
}
prev curr;
curr curr->next;
}
}
void traverse() {
Node* curr head->next;
while (curr ! nullptr) {
cout << "姓名:" << curr->name << ",成績(jī):" << curr->score << endl;
curr curr->next;
}
}
};
```
現(xiàn)在可以使用這個(gè)鏈表類來管理學(xué)生成績(jī)了。
```cpp
int main() {
LinkedList list;
("張三", 80);
("李四", 90);
("王五", 85);
("趙六", 95);
();
("李四");
();
return 0;
}
```
運(yùn)行結(jié)果如下:
```
姓名:張三,成績(jī):80
姓名:李四,成績(jī):90
姓名:王五,成績(jī):85
姓名:趙六,成績(jī):95
姓名:張三,成績(jī):80
姓名:王五,成績(jī):85
姓名:趙六,成績(jī):95
```
通過這個(gè)編程實(shí)例,我們可以看到單鏈表的插入、刪除和遍歷操作的效果。單鏈表的應(yīng)用不僅限于學(xué)生成績(jī)管理,還可以用于其他各種場(chǎng)景,如鏈表排序、鏈表合并等。
總結(jié)一下,單鏈表是一種常見的數(shù)據(jù)結(jié)構(gòu),具有高效的插入和刪除操作。通過編程實(shí)例展示了單鏈表的應(yīng)用。希望本文能夠幫助讀者理解和掌握單鏈表的概念和基本操作。