VC中文網-VC-MFC編程論壇

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 1186|回復: 2
打印 上一主題 下一主題

這不但僅是一個單鏈表,C++的模板化單鏈表,附帶內置迭代器實現

[復制鏈接]

13

主題

41

帖子

28

金幣

連長

Rank: 7Rank: 7Rank: 7

積分
120
跳轉到指定樓層
樓主
發表于 2018-8-8 08:03:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
鏈表是可以存儲無限數量項的數據結構。使用指針以順序體例連接這些數據。雖說C語言實現的年夜家都應該很是熟悉了。今天用C++的模板化單鏈表,附帶內置迭代器的簡單實現。





鏈表有兩種類型; 單鏈表和雙鏈表。在單鏈表中,每個元素都包含一些數據和指向下一個元素的鏈接。另一方面,雙向鏈表中的每個節點都包含一些數據,到下一個節點的鏈接和到前一個節點的鏈接。鏈表的元素稱為節點。節點有兩個字段,即data和next。數據字段包含存儲在該特定節點中的數據。它不克不及只是一個變量。可能存在許多變量顯現節點的數據部分。在接下來的字段包含下一個節點的地址。所以這是建立節點之間鏈接的處所。

無論鏈表中存在幾多個節點,第一個節點稱為listHeadNode,最后一個節點稱為listTailNode。如果只建立了一個節點,那么它將被稱為listHeadNode和listTailNode。





使用C ++實現鏈表

由于鏈表由節點組成,我們需要聲明一個界說單個節點的結構。我們的結構應該至少有一個用于數據部分的變量和一個用于下一個節點的指針。在C ++中,我們的代碼如下所示:





C++與C的區別
    界說自界說類型不需要 struct 關鍵字。C++結構體中允許成員函數存在以及構造函數。C++相同函數名允許存在,前提是參數類型不合。即C++函數重載思想。

使用C ++建立鏈表

現在,我們需要一個包含措置節點的函數的類。這個類應該有兩個重要的指針,即頭部和尾部。構造函數將使它們為NULL以避免任何垃圾值。以及萬金油成員size成員。





現在,我們將為節點建立編寫一個函數。建立節點的過程很是簡單。我們需要一個節點類型的指針(我們界說),我們將在其數據字段中插入值。節點的下一個字段將被聲明為NULL,因為它將是鏈接列表的最后一個節點。

現在,該函數將有一個很是特殊的情況,我們想知道如果鏈表仍然為空會產生什么?我們必須檢查它。你還記得頭指向第一個節點嗎?這意味著如果頭部等于NULL,那么我們可以判定鏈表是空的。





我之前也告訴過你,如果在鏈表中只有一個節點(我們要建立),那么它被稱為listHeadNode和listTailNode。

如果已經建立了鏈接列表,那么我們將在鏈接列表的末尾插入此節點。我們知道最后一個節點叫做尾部。因此,我們將在尾節點旁邊建立這個新建立的節點。

在鏈表末尾建立新節點有兩個步調:
    將新建立的節點與尾節點鏈接。意味著將新節點的地址傳遞給尾節點的下一個指針。尾指針應始終指向最后一個節點。所以我們將使尾指針等于一個新節點。

用于鏈表各部分功能 C ++代碼是這樣的

push_back和push_front都放到list 類中的public屬性下。

1.表尾插入





2.表頭插入





3.打印數據





STL 迭代器實現

1.list類中添加一個iterator,即類中類

1.1 iterator 構成





1.2 C++重載運算符,實現迭代器賦值,打印數據,比較,以及自增









2.新增兩個成員函數,初始化迭代器





主函數測試






我為你做了一個鏈表的完整項目。它執行上述所有功能。你可以私信我“代碼”下載它,我希望你喜歡閱讀這篇文章。請考慮分享一下。如果您有任何疑問,可以在評論中提問我。

更多內容回復查看:
游客,如果您要查看本帖隱藏內容請回復
C VC C++ MFC 匯編 函數 腳本 輔助 多開 注入 內存 插件 破解 基址 窗口 大漠 綁定 編程 交流 論壇 實例 源碼
沙發
發表于 2018-8-8 08:04:00 | 只看該作者
轉發了
C VC C++ MFC 匯編 函數 腳本 輔助 多開 注入 內存 插件 破解 基址 窗口 大漠 綁定 編程 交流 論壇 實例 源碼

0

主題

1

帖子

12

金幣

班長

Rank: 4

積分
3
板凳
發表于 2019-11-11 11:25:36 | 只看該作者
zan!!!
C VC C++ MFC 匯編 函數 腳本 輔助 多開 注入 內存 插件 破解 基址 窗口 大漠 綁定 編程 交流 論壇 實例 源碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

VC中文網 - 豫ICP備14012807號|小黑屋|聯系客服|金幣沖值|VC中文網

GMT+8, 2019-12-13 15:32 , Processed in 0.132813 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
千炮捕鱼联网版官方