⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmulist.cpp

📁 用c++变得一个测量财富的+游戏
💻 CPP
📖 第 1 页 / 共 5 页
字号:

{ /* MMUllist::GetIndexOfCurrent procedure */

/******************* Local Constant Declarations **********************/

/******************* Local Variable Declarations **********************/
INT32           mmlInx;
MMG_LLIST_TY   *mmlEntry;

/************************* Procedure Body *****************************/

if (numEntries == 0)
  {
  mmlInx = -1;
  }
else if (current == head)
  {
  mmlInx = 0;
  }
else if (current == tail)
  {
  mmlInx = numEntries-1;
  }
else
  {
  mmlEntry = head->next;
  mmlInx   = 1;
  while (mmlEntry != NULL && mmlEntry != current)
    {
    mmlEntry = mmlEntry->next;
    mmlInx++;
    }
  if (mmlEntry == NULL)
    {
    mmlInx = -1;
    }
  }

return(mmlInx);
} /* MMUllist::GetIndexOfCurrent end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUllist::CopyTo

    PURPOSE:  to copy contents of this list to the specified
      destination list.
**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlErr             FNC    STAT_TYPE, SUCCEEDED or FAILED         **
**\p*******************************************************************/

STAT_TYPE MMUllist::CopyTo( MMUllist *refList )

{
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
STAT_TYPE    mmlErr;

/************************* Procedure Body *****************************/

if (numEntries > 0)
  {
  mmlDat = MMUllist::First();
  mmlErr = SUCCEEDED_;
  while (mmlDat && mmlErr == SUCCEEDED_)
    {
    mmlErr = refList->AppendAfterTail( mmlDat->size,
                                       mmlDat->body );
    if (mmlErr == SUCCEEDED_)
      {
      mmlDat = MMUllist::Next();
      }
    }
  }

return(mmlErr);
}

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::MMUvlist

    PURPOSE:  to construct a linked list.

**                                                                    **
**                                                                    **
**\p*******************************************************************/

MMUvlist::MMUvlist()

{ /* MMUvlist::MMUvlist procedure */
/************************* Procedure Body *****************************/

mmhList = new MMUllist();

} /* MMUvlist::MMUvlist end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::~MMUvlist

    PURPOSE:  to destroy an existing list.

**                                                                    **
**                                                                    **
**\p*******************************************************************/

MMUvlist::~MMUvlist()

{ /* MMUvlist::~MMUvlist procedure */

LIMDEL(mmhList);

} /* MMUvlist::~MMUvlist end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::InsertBeforeHead

    PURPOSE:  to insert a new entry before the head of the list.
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlErr             FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::InsertBeforeHead( INT32             pasSizeofBuf,
                                      void             *pasBufPtr )

{ /* MMUvlist::InsertBeforeHead procedure */
/************************* Procedure Body *****************************/

return(mmhList->InsertBeforeHead( pasSizeofBuf, pasBufPtr ));

} /* MMUvlist::InsertBeforeHead end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::AppendAfterTail

    PURPOSE:  to insert a new entry after the end of the list.
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**			FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::AppendAfterTail( INT32             pasSizeofBuf,
                                      void             *pasBufPtr )

{ /* MMUvlist::AppendAfterTail procedure */
/************************* Procedure Body *****************************/
return(mmhList->AppendAfterTail( pasSizeofBuf, pasBufPtr ));
} /* MMUvlist::AppendAfterTail end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::InsertBeforeCurrent

    PURPOSE:  to insert a new entry before the current entry in
       the list.
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**			FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::InsertBeforeCurrent( INT32             pasSizeofBuf,
                                         void             *pasBufPtr )

{ /* MMUvlist::InsertBeforeCurrent procedure */
/************************* Procedure Body *****************************/
return(mmhList->InsertBeforeCurrent( pasSizeofBuf, pasBufPtr));
} /* MMUvlist::InsertBeforeCurrent end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::InsertAfterCurrent

    PURPOSE:  to insert a new entry after the current entry in
       the list
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**			FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::InsertAfterCurrent( INT32             pasSizeofBuf,
                                         void             *pasBufPtr )

{ /* MMUvlist::InsertAfterCurrent procedure */
/************************* Procedure Body *****************************/
return(mmhList->InsertAfterCurrent( pasSizeofBuf, pasBufPtr));
} /* MMUvlist::InsertAfterCurrent end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::DeleteCurrentEntry

    PURPOSE:  to delete the current entry in the list.
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**			FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::DeleteCurrentEntry()

{ /* MMUvlist::DeleteCurrentEntry procedure */
return(mmhList->DeleteCurrentEntry());
} /* MMUvlist::DeleteCurrentEntry end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::DeleteList

    PURPOSE:  to delete all entries entry in the list.
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**			FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUvlist::DeleteList()

{ /* MMUvlist::DeleteList procedure */
/************************* Procedure Body *****************************/
return(mmhList->DeleteList());
} /* MMUvlist::DeleteList end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUvlist::First
    NAME:  MMUvlist::Last
    NAME:  MMUvlist::Next
    NAME:  MMUvlist::Prev
    NAME:  MMUvlist::Current
    NAME:  MMUvlist::Indexed

    PURPOSE:  to return the address of the indicated data item
      in the list.  On error return NULL.
**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlVdat            FNC    void *, address of data buffer         **
**\p*******************************************************************/

void *MMUvlist::First( )

{ /* MMUvlist::First procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void        *mmlVdat= NULL;

/************************* Procedure Body *****************************/
mmlDat = mmhList->First();

if (mmlDat)
  {
  mmlVdat = mmlDat->body;
  }
return(mmlVdat);
} /* MMUvlist::First end */

/****************************************
* Last
*/
void *MMUvlist::Last( )

{ /* MMUvlist::Last procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void        *mmlVdat= NULL;

/************************* Procedure Body *****************************/
mmlDat = mmhList->Last();

if (mmlDat)
  {
  mmlVdat = mmlDat->body;
  }
return(mmlVdat);
} /* MMUvlist::Last end */

/****************************************
* Next
*/
void *MMUvlist::Next( )
{ /* MMUvlist::Next procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void        *mmlVdat= NULL;

/************************* Procedure Body *****************************/
mmlDat = mmhList->Next();

if (mmlDat)
  {
  mmlVdat = mmlDat->body;
  }
return(mmlVdat);
} /* MMUvlist::Next end */

/****************************************
* Prev
*/
void *MMUvlist::Prev( )

{ /* MMUvlist::Prev procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void        *mmlVdat= NULL;

/************************* Procedure Body *****************************/
mmlDat = mmhList->Prev();

if (mmlDat)
  {
  mmlVdat = mmlDat->body;
  }
return(mmlVdat);
} /* MMUvlist::Prev end */

/****************************************
* Current
*/
void *MMUvlist::Current( )

{ /* MMUvlist::Current procedure */
/******************* Local Variable Declarations ******************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -