用C++模板描述的連結串列、棧、佇列(補充) (轉)
用C++模板描述的連結串列、棧、佇列(補充) (轉)[@more@]
在細想之後,對上一篇一些觀點作些修正。
我原來的想法是公用節點結構,這包括現在的單鏈節點,樹中的雙鏈節點,還有其他各種結構的節點。因為節點的資料成員公開,為了避免無意中對節點中的資料破壞,所有的公開介面沒有返回值為節點或者指向節點的指標。如果必須使用這樣的介面,可以派生一個新類解決問題。比如想新增一個原位逆轉鏈的演算法,可以派生一個新類,在新類中完成演算法。
在完成書後作業的時候,我發現了原書做法的好處,也就是我的做法的不足。如果使用原書的定義,在完成一個功能時,只需要寫出對應的實現。而在我的定義中,必須先派生一個類,然後把這個功能作為成員或者友元。
但是這種比較並不說明書上的定義比我的要合理。首先,使用到原位操作的情況並不多,書後作業只是一種特殊情況;換句話說,書上的定義只是對完成書後作業更實用些。其次,在使用到連結串列的時候,通常只會用到插入、刪除、取資料、搜尋等很少的幾個功能,我的定義足夠用了。而在完成一個時,對連結串列的擴充功能在設計階段就很清晰了,這時可以派生一個新類在整個軟體中使用,對整體的規劃更為有利。對於單個連結串列的操作,把它作為成員函式更好理解一些。也就是說我的定義靈活性不差。
綜上,對於完成書後作業,書上的定義方便一些;對於平常的應用,我的定義更好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-959311/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用C++模板描述的連結串列、棧、佇列(宣告與實現) (轉)C++佇列
- 連結串列&鏈棧&佇列佇列
- 聊聊陣列與連結串列,棧與佇列陣列佇列
- 線性表(陣列、連結串列、佇列、棧)詳細總結陣列佇列
- 用連結串列實現佇列的功能佇列
- 連結串列、棧、佇列、KMP相關知識點佇列KMP
- 鏈式佇列—用連結串列來實現佇列佇列
- 常見的線性列表結構---【陣列、連結串列、棧、佇列、堆】陣列佇列
- 《啊哈!演算法》-第 2 章:棧、佇列、連結串列演算法佇列
- C++:用棧實現反轉連結串列,超簡單!C++
- 佇列_單向連結串列佇列
- 資料結構與演算法(二)佇列、棧、連結串列資料結構演算法佇列
- [C++]歸併排序(連結串列描述)C++排序
- java實現單連結串列、棧、佇列三種資料結構Java佇列資料結構
- 約瑟夫環 佇列+連結串列佇列
- 描述高頻題之佇列&棧佇列
- 連結串列還會用嗎?用連結串列實現佇列(附演算法原始碼)佇列演算法原始碼
- 重溫四大基礎資料結構:陣列、連結串列、佇列和棧資料結構陣列佇列
- 資料結構與演算法分析 讀書筆記(連結串列 棧 佇列)資料結構演算法筆記佇列
- 陣列、連結串列、堆疊和佇列學習陣列佇列
- #反轉連結串列_C++版 #反轉連結串列_Java版 @FDDLCC++Java
- 025 透過連結串列學Rust之使用棧實現雙端佇列Rust佇列
- 025 通過連結串列學Rust之使用棧實現雙端佇列Rust佇列
- 自定義單連結串列佇列的基本介面函式(非迴圈佇列)佇列函式
- 重學資料結構和演算法(一)之複雜度、陣列、連結串列、棧、佇列、圖資料結構演算法複雜度陣列佇列
- 棧_單向連結串列
- 連結串列還會用嗎?用連結串列實現棧(附演算法原始碼)演算法原始碼
- 《演算法筆記二》連結串列、棧、佇列、遞迴、雜湊表、順序表演算法筆記佇列遞迴
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- Rust 程式設計,用連結串列實現棧Rust程式設計
- 資料結構—棧/佇列資料結構佇列
- 資料結構-佇列、棧資料結構佇列
- 反轉連結串列(C++簡單區)C++
- 資料結構學習(C++)——棧和佇列(定義和實現) (轉)資料結構C++佇列
- C++建立連結串列C++
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 【C++】“反轉連結串列”相關的題目C++