亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? t_list.hpp

?? 聯(lián)通接收發(fā)送新程序
?? HPP
字號(hào):

/* Copyright( C ) 2000 by JiangSu Bell Software CO.,LTD. */
/*
****************************************************************************
Content:        單向鏈表處理
Name:           T_LIST.H		        Version: 1.0.0
Created by:     CaoGuiRong       		Date: 2000-08-11
Comment:        鏈表處理模板類。

All rights reserved
****************************************************************************
*/

#ifndef __T_LIST_H__
#define __T_LIST_H__

template < class TYPE >
class T_LIST
{
public:

    struct T_NODE
    {
      T_NODE* pNext;
      TYPE*   pItem;
    };

protected:

    T_NODE* m_pHead;
    T_NODE* m_pTail;
    T_NODE* m_pCur;


    short   bdeleteflag;  //1: 析構(gòu)鏈表時(shí)刪除節(jié)點(diǎn)的數(shù)據(jù)
                          //0: 析構(gòu)鏈表時(shí)保留節(jié)點(diǎn)的數(shù)據(jù)
public:

    //--------------------------------------------------------------------------
    //  構(gòu)造函數(shù) ,缺省刪除節(jié)點(diǎn)標(biāo)志為0
    //--------------------------------------------------------------------------
    T_LIST( short bflag = 0 ) : m_pHead( NULL ), m_pTail( NULL ), m_pCur( NULL )
    {
      bdeleteflag = bflag ;
    };

    //--------------------------------------------------------------------------
    //  析構(gòu)函數(shù),清除鏈表,釋放鏈表的數(shù)據(jù)成員
    //--------------------------------------------------------------------------
    ~T_LIST()
    {
      EmptyList();
    };

    //--------------------------------------------------------------------------
    //  IsEmpty()
    //  是否空表?
    //--------------------------------------------------------------------------
    inline bool IsEmpty()
    {
      return ( !m_pHead ? true : false );
    };
    //--------------------------------------------------------------------------
    //  SetDeleteFlag( short b  )
    //  設(shè)置刪除標(biāo)志
    //--------------------------------------------------------------------------
    inline void SetDeleteFlag( short b  )
    {
      bdeleteflag = b ;
    };

    //--------------------------------------------------------------------------
    //  TYPE* Head()
    //  返回頭節(jié)點(diǎn)對(duì)應(yīng)的值
    //--------------------------------------------------------------------------
    inline TYPE* Head()
    {
      if ( m_pHead )
        return m_pHead -> pItem;
      else
        return NULL;
    };

    //--------------------------------------------------------------------------
    //    TYPE* Tail()
    //  返回尾節(jié)點(diǎn)的數(shù)據(jù)成員值
    //--------------------------------------------------------------------------
    inline TYPE* Tail()
    {
      if ( m_pTail )
        return m_pTail->pItem;
      else
        return NULL;
    };

    //--------------------------------------------------------------------------
    //  inline void GoHead()
    //  重置光標(biāo)
    //--------------------------------------------------------------------------
    inline void GoHead()
    {
      m_pCur = m_pHead;
    }

    //--------------------------------------------------------------------------
    //  TYPE* Next()
    //  返回當(dāng)前數(shù)據(jù)成員值,然后光標(biāo)向后移動(dòng)一個(gè)位置
    //--------------------------------------------------------------------------
    inline TYPE* Next()
    {
      if ( m_pCur == NULL )
        return NULL;
      TYPE* pReturn = m_pCur->pItem;
      m_pCur = m_pCur->pNext;
      return pReturn;
    };

    //--------------------------------------------------------------------------
    //  TYPE* Current()
    //  返回當(dāng)前數(shù)據(jù)成員值
    //--------------------------------------------------------------------------
    inline TYPE* Current()
    {
      if ( m_pCur == NULL )
        return NULL;
      TYPE* pReturn = m_pCur->pItem;
      return pReturn;
    };

    //--------------------------------------------------------------------------
    //  TYPE* Position()
    //  返回當(dāng)前節(jié)點(diǎn)指針
    //--------------------------------------------------------------------------
    inline T_NODE* Position()
    {
      return m_pCur;
    };


    //--------------------------------------------------------------------------
    //  bool IsTail()
    //  判斷當(dāng)前節(jié)點(diǎn)是否為尾節(jié)點(diǎn),如果是,返回TRUE,否則返回FALSE
    //--------------------------------------------------------------------------
    inline bool IsTail()
    {
		return ( m_pCur == m_pTail ? 1 : 0 ) ;
    };



    //--------------------------------------------------------------------------
    //  TYPE* RemoveCursor()
    //  返回當(dāng)前數(shù)據(jù)成員值,刪除當(dāng)前節(jié)點(diǎn)
    //--------------------------------------------------------------------------
    inline TYPE* RemoveCursor()
    {
      T_NODE* pTemp = m_pCur;
      m_pCur = m_pCur->pNext;
      return RemoveAt( pTemp );
    };

    //--------------------------------------------------------------------------
    //  T_NODE* AddTail( TYPE* pItem )
    //  在尾部添加一個(gè)節(jié)點(diǎn),數(shù)據(jù)成員為pItem
    //  注意:節(jié)點(diǎn)并不申請(qǐng)數(shù)據(jù)成員的空間,而是直接用外面的數(shù)據(jù)。所以在外面,不能
    //  刪除數(shù)據(jù)成員。可以通過RemoveAt( POSITION ) 刪除節(jié)點(diǎn),并返回?cái)?shù)據(jù)成員指針
    //  或者調(diào)用EmptyList()來清空
    //--------------------------------------------------------------------------

    inline bool AddTail( TYPE* pItem )
    {
      if ( m_pTail )
      {
        m_pTail->pNext = new T_NODE ;
        if (  m_pTail -> pNext )
          m_pTail = m_pTail->pNext;
      }
      else
      {
        m_pHead = new T_NODE ;
        if ( m_pHead != NULL )
          m_pTail = m_pHead;
      }
      if ( m_pTail )
      {
        m_pTail->pItem = pItem;
        m_pTail->pNext = NULL;
      }
      return ( m_pTail ? true : false );
    };


    //--------------------------------------------------------------------------
    //  bool AddBefore( T_NODE* pPosi )
    //  在給定節(jié)點(diǎn)之前添加一個(gè)節(jié)點(diǎn),數(shù)據(jù)成員為pItem
    //--------------------------------------------------------------------------

    inline bool AddBefore( T_NODE* pPosi,TYPE* pItem )
    {
      if( !pPosi )
		return 0 ;

      T_NODE *pTemp  = new T_NODE ;
      pTemp -> pItem = pItem ;
      pTemp -> pNext = NULL ;


      if( m_pHead == pPosi )
      {//在頭上
		pTemp -> pNext = m_pHead ;
		m_pHead = pTemp ;
	  }
	  else
	  {//在中間
        T_NODE *pcur = m_pHead ;
		while( pcur -> pNext != pPosi && pcur  )
		{
		  pcur = pcur->pNext ;
		}
		if( pcur )
		{
		  pcur  -> pNext = pTemp ;
		  pTemp -> pNext = pPosi ;
		}
		else
		  return 0 ; //cao 2001.4
	  }

      return 1;
    };

    //--------------------------------------------------------------------------
    //  bool AddAfter( T_NODE* pPosi,TYPE* pItem )
    //  在給定節(jié)點(diǎn)之后添加一個(gè)節(jié)點(diǎn),數(shù)據(jù)成員為pItem,較快
    //--------------------------------------------------------------------------

    inline bool AddAfter( T_NODE* pPosi,TYPE* pItem )
    {
      if( pPosi == NULL )
		return 0 ;

      T_NODE *pTemp  = new T_NODE ;
      pTemp -> pItem = pItem ;
      pTemp -> pNext = NULL ;

      if( m_pTail == pPosi )
      {//在結(jié)尾
		pPosi -> pNext = pTemp ;
		m_pTail = pTemp ;
	  }
	  else
	  {//在中間
        pTemp -> pNext = pPosi -> pNext ;
		pPosi -> pNext = pTemp ;
	  }

      return 1;
    };
 
    //--------------------------------------------------------------------------
    // EmptyList()
    // 清空列表,如果bdeleteflag!=0不刪除數(shù)據(jù)成員,否則刪除成員數(shù)據(jù)
    //--------------------------------------------------------------------------
    inline void EmptyList()
    {
      while ( !IsEmpty() )
      {
        if( bdeleteflag != 0 )
          delete RemoveAt( GetHeadPosition() );
        else
          RemoveAt( GetHeadPosition() );
      }
	  m_pHead = NULL;
      m_pTail = NULL;
      m_pCur  = NULL;

    };
    //--------------------------------------------------------------------------
    // EmptyListWithDelete()
    // 清空列表,刪除數(shù)據(jù)成員,
    //--------------------------------------------------------------------------
    inline void EmptyListWithDelete()
    {
      while ( !IsEmpty() )
      {
        delete RemoveAt( GetHeadPosition() );
      }
	  m_pHead = NULL;
      m_pTail = NULL;
      m_pCur  = NULL;
    };

    //--------------------------------------------------------------------------
    //  TYPE* RemoveHead()
    //  刪除頭節(jié)點(diǎn)
    //--------------------------------------------------------------------------
    inline TYPE* RemoveHead()
    {
      if ( m_pHead == NULL )
        return NULL;
      else
        return RemoveAt( m_pHead );
    };

    //--------------------------------------------------------------------------
    //  TYPE* RemoveHead()
    //  刪除頭節(jié)點(diǎn)
    //--------------------------------------------------------------------------
    inline void ExportAll( char* pctext = "my_log_.txt" )
    {//遍歷
      FILE *p_file = fopen( pctext,"a+" ) ;
      if( p_file )
      {
        fprintf( p_file,"\r\n\r\n\r\n================== Begin " ) ;

        GoHead() ;
        while( Position() )
        {
#ifdef __CAO__
		fprintf( p_file,"\n %s ", Current() -> Output() ) ;
#endif
		// fprintf( p_file,"\n %s ", Current() -> Output() ) ;

          Next() ;
        }

        fprintf( p_file,"\r\n================== End " ) ;
      }
      if( p_file )
        fclose( p_file ) ;
    };


    //--------------------------------------------------------------------------
    //inline T_NODE* GetHeadPosition()
    //  取頭節(jié)點(diǎn)位置
    //--------------------------------------------------------------------------
    inline T_NODE* GetHeadPosition()
    {
      return m_pHead;
    };

    //--------------------------------------------------------------------------
    // inline T_NODE* GetTailPosition()
    // 取尾節(jié)點(diǎn)位置
    //--------------------------------------------------------------------------
    inline T_NODE* GetTailPosition()
    {
      return m_pTail;
    };

    //--------------------------------------------------------------------------
    // virtual TYPE* RemoveAt( T_NODE* Pos )
    // 刪除指定位置的節(jié)點(diǎn),返回節(jié)點(diǎn)對(duì)應(yīng)的值
    //--------------------------------------------------------------------------
    inline virtual TYPE* RemoveAt( T_NODE* Pos )
    {
      TYPE* pReturn = NULL;
      if ( m_pHead )
      {
        if ( m_pHead == Pos )
        {
          // Removing the first element in the list
          m_pHead = Pos->pNext;
          pReturn = Pos->pItem;
          delete Pos;
          Pos = NULL;
          if ( NULL == m_pHead )
          {
	    // Removing the only element!
            m_pTail = NULL;
          }
        }
        else
        {
          T_NODE* pCur = m_pHead;
          while ( pCur && pCur->pNext )
          {
            if ( pCur->pNext == Pos )
            {
		    // Removing
              pCur->pNext = Pos->pNext;
              if ( m_pTail == Pos )
              {
                m_pTail = pCur;
              }
              pReturn = Pos->pItem;
              delete Pos;
            }
            pCur = pCur->pNext;
          }
        }
      }
      return pReturn;
    };

    //--------------------------------------------------------------------------
    //  TYPE* GetNext( T_NODE*& rPos );
    //  返回指定節(jié)點(diǎn)數(shù)據(jù)成員值,然后光標(biāo)向后移動(dòng)一個(gè)位置
    //--------------------------------------------------------------------------
    inline TYPE* GetNext( T_NODE*& rPos )
    {
      TYPE* pReturn = NULL;
      if ( rPos )
      {
        rPos = rPos->pNext;
        pReturn = rPos->pItem;
      }
      return pReturn;
    };

    //--------------------------------------------------------------------------
    //  TYPE* GetFromPosition( T_NODE* rPos )
    //  不驗(yàn)證節(jié)點(diǎn)的正確性,根據(jù)節(jié)點(diǎn)位置取對(duì)應(yīng)的數(shù)據(jù)成員值
    //--------------------------------------------------------------------------
    inline TYPE* GetFromPosition( T_NODE* rPos )
    {
      if ( rPos )
        return  rPos->pItem;
      else
        return NULL;
    };

    //--------------------------------------------------------------------------
    //  SafeGetFromPosition( T_NODE* rPos );
    //  驗(yàn)證節(jié)點(diǎn)的正確性,然后根據(jù)節(jié)點(diǎn)位置取對(duì)應(yīng)的數(shù)據(jù)成員值.
    //--------------------------------------------------------------------------
    inline TYPE* SafeGetFromPosition( T_NODE* Pos )
    {
      T_NODE* PosWork = m_pHead;
      while ( PosWork )
      {
        if ( PosWork == Pos )
        {
         return Pos->pItem;
        }
        GetNext( PosWork );
      }
      return NULL;
    }
};

#endif //__T_LIST_H__

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费亚洲电影| 国产欧美精品一区aⅴ影院| 色综合久久99| 成人激情开心网| 成人午夜激情在线| www.成人网.com| 99re热这里只有精品视频| 成人av第一页| 色www精品视频在线观看| 91久久精品一区二区二区| 色综合天天做天天爱| 91福利小视频| 欧美日韩电影在线| 日韩三级视频在线观看| 欧美一级高清片| 日韩精品一区在线| 久久欧美一区二区| 中文字幕 久热精品 视频在线| 国产精品污www在线观看| 国产精品视频一二三| 亚洲天堂精品视频| 亚洲一区二区偷拍精品| 亚洲国产精品欧美一二99| 日韩1区2区3区| 国产一区二区三区久久久| 国产91丝袜在线观看| 9l国产精品久久久久麻豆| 在线观看免费一区| 日韩一区二区精品| 国产精品素人视频| 一区二区三区高清| 蜜臀av亚洲一区中文字幕| 国模少妇一区二区三区| av中文字幕亚洲| 欧美日韩在线电影| 欧美精品一区二区在线播放| 一区在线观看免费| 亚洲v中文字幕| 国产一区二区三区精品欧美日韩一区二区三区| 丰满少妇在线播放bd日韩电影| 99久久精品情趣| 欧美一区二区视频免费观看| 国产三级精品在线| 亚洲午夜久久久久久久久电影网| 蜜桃视频在线观看一区| 成人性生交大合| 欧美日韩在线免费视频| 国产日产精品一区| 亚洲午夜免费电影| 成人精品国产一区二区4080| 欧美日韩五月天| 国产喂奶挤奶一区二区三区| 午夜在线成人av| 国产91精品精华液一区二区三区| 欧美日韩的一区二区| 亚洲国产精品传媒在线观看| 婷婷激情综合网| 成人av网址在线| 日韩一二三四区| 亚洲乱码中文字幕综合| 韩国中文字幕2020精品| 欧美中文字幕久久| 国产亚洲欧美一区在线观看| 亚洲午夜视频在线| 成人美女视频在线观看18| 日韩亚洲欧美综合| 亚洲综合一区二区| 不卡区在线中文字幕| 精品国产污网站| 亚洲地区一二三色| 不卡视频一二三| 国产亚洲精品免费| 日韩精品免费专区| 色婷婷av一区二区三区大白胸 | 国产精品免费人成网站| 天堂va蜜桃一区二区三区漫画版| 成人精品视频.| 久久午夜老司机| 美女网站视频久久| 777午夜精品免费视频| 一区二区三区在线观看视频| 成人免费观看av| 久久精品网站免费观看| 裸体歌舞表演一区二区| 69av一区二区三区| 五月婷婷综合网| 一本大道av一区二区在线播放 | 国产精品一区三区| 欧美一区二区三区思思人| 亚洲蜜臀av乱码久久精品| 国产91高潮流白浆在线麻豆 | 欧美a级一区二区| 在线观看日韩高清av| 综合久久一区二区三区| a级精品国产片在线观看| 欧美国产一区视频在线观看| 国产一区二区三区四区五区入口| 精品嫩草影院久久| 精品一二线国产| 26uuu成人网一区二区三区| 久久99九九99精品| 精品国产乱码久久久久久图片| 三级不卡在线观看| 欧美夫妻性生活| 日韩国产欧美在线视频| 欧美精品久久一区| 午夜精品久久久久久久久| 欧美日韩国产小视频| 亚洲6080在线| 欧美人牲a欧美精品| 天堂av在线一区| 日韩一区二区三区在线| 久久精品国产一区二区三区免费看| 欧美精品在线观看一区二区| 日本一区中文字幕| 26uuu国产一区二区三区| 国产精品亚洲一区二区三区妖精| 久久综合久久鬼色| 国产成人a级片| 一区精品在线播放| 在线免费观看日韩欧美| 天堂成人免费av电影一区| 精品美女被调教视频大全网站| 精品一区二区三区久久| 国产精品网站在线观看| 欧美综合久久久| 日韩精品电影在线| 久久网站热最新地址| www.亚洲在线| 亚洲高清视频中文字幕| 日韩欧美一二三| 成人午夜精品在线| 亚洲一本大道在线| 久久综合久久综合久久综合| 99久免费精品视频在线观看| 亚洲国产aⅴ成人精品无吗| 欧美成人a∨高清免费观看| 粉嫩蜜臀av国产精品网站| 亚洲精品第一国产综合野| 欧美电影一区二区| 成人午夜又粗又硬又大| 亚洲自拍另类综合| 精品成人一区二区| av网站一区二区三区| 天堂va蜜桃一区二区三区| 国产亚洲精品资源在线26u| 欧美天堂亚洲电影院在线播放 | 日韩精品中文字幕一区二区三区| 福利电影一区二区三区| 亚洲一区二区在线观看视频| 26uuu成人网一区二区三区| 色综合久久九月婷婷色综合| 男女男精品视频| 中文字幕一区二| 日韩精品在线一区二区| 91最新地址在线播放| 免费观看久久久4p| 亚洲欧美在线高清| 日韩欧美卡一卡二| 色综合网站在线| 国产精品性做久久久久久| 婷婷激情综合网| 亚洲女同女同女同女同女同69| 欧美一区二区三区影视| 91碰在线视频| 国产精品一区二区果冻传媒| 亚洲福利电影网| 国产精品三级av| 精品国产乱码久久久久久老虎| 欧美怡红院视频| 99久久99久久久精品齐齐| 久久99日本精品| 亚洲电影中文字幕在线观看| 国产精品第13页| 精品久久国产老人久久综合| 欧美日韩亚洲综合一区二区三区| 不卡一区在线观看| 久久精品国产精品亚洲红杏| 亚洲国产欧美在线| 最新中文字幕一区二区三区| 久久影视一区二区| 日韩欧美第一区| 91麻豆精品国产91久久久| 色天使色偷偷av一区二区| 成人综合日日夜夜| 国产美女精品一区二区三区| 秋霞国产午夜精品免费视频| 一区二区三区蜜桃网| 亚洲欧洲日韩av| 日本一区免费视频| 久久色.com| 精品国产乱码久久久久久闺蜜| 3d动漫精品啪啪一区二区竹菊 | 久久久99精品久久| 日韩三级中文字幕| 日韩精品一区二区三区在线观看| 欧美男人的天堂一二区| 欧美日韩在线播放| 91美女视频网站| 色综合一区二区|