• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 8  文章 - 26  trackbacks - 0
            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            相冊

            C++語言

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            1
              1#ifndef LIST_H
              2#define LIST_H
              3#include <iostream>
              4//鏈表節(jié)點
              5template<class T>
              6class ListNode
              7{
              8public:
              9    ListNode(ListNode<T>* nextnode=0,const T &val=T())
             10    {
             11    data=val;
             12    next=nextnode;
             13    }

             14public:
             15T data;
             16    ListNode<T> *next;
             17
             18}
            ;
             19
             20//鏈表實現(xiàn)
             21template<class T>
             22class List
             23{
             24
             25public:
             26    List();
             27    virtual ~List();
             28    void Insert_Front(const T &e);//向表頭插入節(jié)點
             29    void Insert_End(const T &e);//向表尾插入節(jié)點
             30    ListNode<T>* Find(const T &e);//查找指定節(jié)點
             31    bool Delete(const T &e);//刪除指定節(jié)點
             32    List<T>& Delete_All();//刪除除了頭結(jié)點以外的所有節(jié)點
             33    bool IsEmpty();//測試鏈表是否為空
             34    bool Size() const {return size;}//返回鏈表中的節(jié)點數(shù)目
             35    void OutPut();
             36
             37private:
             38    ListNode<T>*front,*rear,*head;//頭指針與尾指針
             39    int size;//鏈表元素節(jié)點數(shù)目
             40}
            ;
             41
             42
             43
             44
             45//---------------------------------------------------------------------
             46template<class T>
             47List<T>::~List()
             48{
             49Delete_All();
             50delete head;
             51
             52}

             53//---------------------------------------------------------------------
             54template<class T>
             55List<T>::List()
             56{
             57//構(gòu)造頭接點
             58head=new ListNode<T>();
             59front=rear=head;
             60head->next=head;
             61}

             62
             63//---------------------------------------------------------------------
             64template<class T>
             65void List<T>::Insert_Front(const T &e)
             66{
             67    ListNode<T> *NewNode=new ListNode<T>(0,e);
             68if(front->next==head)//如果鏈表為空
             69{
             70
             71front->next=NewNode;
             72NewNode->next=head;
             73rear=NewNode;
             74}

             75else//鏈表不為空
             76{
             77NewNode->next=front->next;
             78front->next=NewNode;
             79}

             80++size;
             81}

             82//---------------------------------------------------------------------
             83template<class T>
             84void List<T>::Insert_End(const T &e)
             85{
             86    ListNode<T> *NewNode=new ListNode<T>(0,e);
             87if(front->next==head)//如果鏈表為空
             88{
             89
             90front->next=NewNode;
             91NewNode->next=head;
             92rear=NewNode;
             93}

             94else//鏈表不為空
             95{
             96rear->next=NewNode;
             97NewNode->next=head;
             98rear=NewNode;
             99
            100}

            101++size;
            102}

            103//---------------------------------------------------------------------
            104template<class T>
            105ListNode<T>* List<T>::Find(const T &e)
            106{
            107head->data=e;
            108ListNode<T> *move=front->next;
            109while(move->data!=e)
            110{
            111move=move->next;
            112}

            113
            114if(move==front) return NULL;
            115else
            116return move;
            117}

            118
            119//---------------------------------------------------------------------
            120template<class T>
            121bool List<T>::Delete(const T &e)
            122{
            123head->data=e;
            124ListNode<T> *move=front->next;
            125ListNode<T> *pmove=head;
            126while(move->data!=e)
            127{
            128    pmove=move;
            129move=move->next;
            130}

            131if(move==head) return false;//未找到節(jié)點
            132pmove->next=move->next;
            133if(move==rear)//如果為尾節(jié)點則修改尾指針
            134rear=pmove;
            135delete move;
            136return true;
            137}

            138
            139//---------------------------------------------------------------------
            140template<class T>
            141void List<T>::OutPut()
            142{
            143ListNode<T> *move=front->next;
            144while(move!=head)
            145{
            146cout<<move->data<<" ";
            147move=move->next;
            148}

            149cout<<endl;
            150}

            151//---------------------------------------------------------------------
            152template<class T>
            153List<T>& List<T>::Delete_All()
            154{
            155ListNode<T> *movenext,*move=front->next;
            156
            157while(move!=head)
            158{
            159movenext=move->next;
            160delete move;
            161move=movenext;
            162}

            163front=rear=head;
            164head->next=head;
            165
            166return *this;
            167}

            168//---------------------------------------------------------------------
            169template<class T>
            170bool List<T>::IsEmpty()
            171{
            172
            173if(head->next=head) return true;
            174else 
            175return false;
            176}

            177#endif
            posted on 2008-09-18 20:54 楊彬彬 閱讀(1754) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)
            久久久久久国产精品无码下载| 久久九九亚洲精品| 久久久久亚洲AV无码专区首JN | 一本色道久久综合亚洲精品| 久久精品国产亚洲AV嫖农村妇女| 国内精品久久久人妻中文字幕| 亚洲伊人久久大香线蕉苏妲己| 一级A毛片免费观看久久精品| 精品久久久久中文字幕日本| 久久久久亚洲AV综合波多野结衣| 久久综合亚洲色HEZYO社区| 久久免费精品一区二区| 久久久这里有精品| 国产午夜福利精品久久| 少妇高潮惨叫久久久久久| 久久精品18| 久久亚洲国产欧洲精品一| 热re99久久精品国99热| 亚洲精品午夜国产va久久 | 中文精品99久久国产 | 亚洲αv久久久噜噜噜噜噜| 99久久精品国产一区二区三区| 亚洲午夜久久久久久久久电影网 | 日韩欧美亚洲综合久久影院Ds| 久久精品九九亚洲精品| 一本久久a久久精品亚洲| 久久精品国产一区二区三区不卡| 久久精品国内一区二区三区| 看久久久久久a级毛片| 久久综合久久美利坚合众国| 综合久久久久久中文字幕亚洲国产国产综合一区首| 久久精品无码专区免费青青| 亚洲综合伊人久久综合| 欧美大香线蕉线伊人久久| 久久人人爽人人爽人人片AV高清| 合区精品久久久中文字幕一区| 久久强奷乱码老熟女网站| 一本久久免费视频| 伊人久久大香线蕉亚洲| 久久丫精品国产亚洲av不卡 | 国产美女久久久|