最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++使用模板實現(xiàn)單鏈表

 更新時間:2020年04月26日 10:45:15   作者:牧童遙指杏花村丫  
這篇文章主要為大家詳細(xì)介紹了C++使用模板實現(xiàn)單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了用模板實現(xiàn)單鏈表,供大家參考,具體內(nèi)容如下

話不多說 直接上代碼

#include <iostream>
using namespace std;
 
template<typename E>
class CLink;
 
template<typename T>
class Node
{
 friend class CLink<T>;
 
public:
 /*
 構(gòu)造函數(shù)和析構(gòu)函數(shù)一般不加類型參數(shù)
 本類類中除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以外
 其它的地方都要加上類型參數(shù)
 */
 Node(T data = 0)
 {
 mdata = data;
 pnext = NULL;
 }
 ~Node(){}
 
private:
 T mdata;
 Node<T>* pnext;
};
 
template<typename T>
class CLink
{
public:
 CLink()
 {
 phead = new Node<T>();
 }
 void InsertHead(T data)
 {
 Node<T>* pNewNode = new Node<T>(data);
 pNewNode->pnext = phead->pnext;
 phead->pnext = pNewNode;
 } 
 
 void InsertTail(T data)
 {
 Node<T>* pNewNode = new Node<T>(data);
 Node<T>* pCur = phead;
 while(pCur->pnext != NULL)
 {
 pCur = pCur->pnext;
 }
 pCur->pnext = pNewNode;
 }
 
 void Show()
 {
 Node<T>* pCur = phead->pnext;
 while (pCur != NULL)
 {
 cout << pCur->mdata << " ";
 pCur = pCur->pnext;
 }
 cout << endl;
 }
 
 ~CLink()
 {
 Node<T>* pCur = phead;
 Node<T>* pNext = phead;
 while (pCur != NULL)
 {
 pNext = pCur->pnext;
 delete pCur;
 pCur = pNext;
 }
 phead = NULL;
 } 
 
private:
 Node<T>* phead;
};
 
int main()
{
 CLink<int> list1;
 CLink<int> list2;
 
 for(int i = 0;i < 10;i++)
 {
 list1.InsertHead(i + 1);
 list2.InsertTail(i * 2);
 }
 cout << "list1:";
 list1.Show();
 
 cout << "list2:";
 list2.Show();
 
 return 0;
}

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法

    C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法

    這篇文章主要介紹了C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法,是一個比較實用的算法技巧,包含了關(guān)于棧的基本操作,需要的朋友可以參考下
    2014-08-08
  • C++使用easyx實現(xiàn)打磚塊游戲

    C++使用easyx實現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C++使用easyx實現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++11中std::move、std::forward、左右值引用、移動構(gòu)造函數(shù)的測試問題

    C++11中std::move、std::forward、左右值引用、移動構(gòu)造函數(shù)的測試問題

    這篇文章主要介紹了C++11中std::move、std::forward、左右值引用、移動構(gòu)造函數(shù)的測試,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 詳解C++編程中類的聲明和對象成員的引用

    詳解C++編程中類的聲明和對象成員的引用

    這篇文章主要介紹了詳解C++編程中類的聲明和對象成員的引用,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 淺析C語言初階的常量和變量

    淺析C語言初階的常量和變量

    在C程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量,本文將帶你了解什么是常量和變量,以及使用方法,需要的朋友可以參考下
    2023-05-05
  • C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))

    C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))

    cJSON是一個超輕巧的JSON解析器,本文主要介紹了C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù)),具有一定的參考價值,感興趣的可以了解一下
    2021-09-09
  • C語言實現(xiàn)一個多線程委托模型的示例詳解

    C語言實現(xiàn)一個多線程委托模型的示例詳解

    這篇文章主要介紹了C語言實現(xiàn)一個多線程委托模型,這就是一個使用C語言實現(xiàn)多線程委托模型的例子,其中包含boss線程和worker線程,可以處理工作線程的異常情況,需要的朋友可以參考下
    2023-06-06
  • C++容器算法示例詳解

    C++容器算法示例詳解

    在談到容器算法,我們大概率會用到謂詞predicate,謂詞返回的類型是布爾類型(bool)可以是lambda表達(dá)式、函數(shù)對象以及其它可調(diào)用的對象,這篇文章主要介紹了C++容器算法,需要的朋友可以參考下
    2024-08-08
  • C++內(nèi)存泄漏及檢測工具詳解

    C++內(nèi)存泄漏及檢測工具詳解

    最簡單的方法當(dāng)然是借助于專業(yè)的檢測工具,比較有名如BoundsCheck,功能非常強大,相信做C++開發(fā)的人都離不開它。此外就是不使用任何工具,而是自己來實現(xiàn)對內(nèi)存泄露的監(jiān)控
    2013-10-10
  • C++模板非類型形參的詳細(xì)講解

    C++模板非類型形參的詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于C++模板非類型形參的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作就有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-11-11

最新評論

富阳市| 濉溪县| 平罗县| 建昌县| 容城县| 同江市| 建阳市| 贺州市| 大方县| 永宁县| 青冈县| 柳江县| 屯昌县| 麻城市| 东平县| 定远县| 临西县| 楚雄市| 平昌县| 德安县| 海南省| 万载县| 华安县| 哈尔滨市| 梁河县| 古浪县| 织金县| 郯城县| 保山市| 永平县| 林州市| 阿城市| 织金县| 顺义区| 冷水江市| 阜新市| 图木舒克市| 沙湾县| 南丰县| 正安县| 龙江县|