日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

数据结构与算法(C++)– 链表(Link)

發布時間:2025/3/12 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法(C++)– 链表(Link) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構與算法(C++)– 鏈表(Link)


1、基礎知識

表:把具有相同類型的序列 A0, A1, A2, … An 稱為表 。n 是表的大小,n=0 稱為空表。 A0沒有前驅,An沒有后繼。
前驅: Ai 后繼 Ai-1 (i < N) ,Ai 是 Ai-1的后繼。
后繼: Ai?1前驅 Ai (i > 0),Ai-1 是 Ai的前驅。

c++ STL 中的 list 用雙向鏈表實現的,同時記錄頭和尾節點。


2、單向鏈表

單向鏈表:只有后繼沒有前驅,最后一個節點指向 nullptr。

// 單向鏈表節點類 struct Node {int data;Node *next; }// 創建一個節點 Node *node = new Node; node->data = 1; node->next = nullptr;

單向鏈表插入元素:

// 已知節點 A1 為 p, 在p后插入節點 node node->next = p->next; p->next = node;

單向鏈表刪除元素:

// 已知節點 A1 為 p, 在p后刪除節點A2為 p1 p->next = p1->next; delete p1; p1 = NULL;

單向鏈表反序:

// 依次改變箭頭的方向,以第一個箭頭為例 // A0 A1 A2 分別為節點 pre cur next cur->next = pre; pre = cur; cur = next; next = next->next;

3、雙向鏈表

雙向鏈表:后繼和前驅都有,最后一個節點指向 nullptr。

// 雙向鏈表節點類 struct Node {int data;Node *pre, *next; }

雙向鏈表插入元素:

// 已知p, 在前面插入node Node *node = new Node; node->data = x; node->pre = p->pre; p->pre = node; p->pre->next = node; node->next = p

雙向鏈表刪除元素:

// 刪除p p->next->pre = p->pre; p->pre->next = p->next; delete p; p = NULL;

總結

以上是生活随笔為你收集整理的数据结构与算法(C++)– 链表(Link)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。