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

📄 mxdblist.h

📁 RSA C++源代码DEMO,附加DESMD5等众多算法
💻 H
字号:
/* ------------------------------------------------------------------------*/
/*                                                                         */
/*   MXDBLIST.H                                                               */
/*                                                                         */
/*   Copyright (c) MXSoft 1995, 1996                                       */
/*   All Rights Reserved.                                                  */
/*   Writen by MHW 1993                                                    */
/*                                                                         */
/* ------------------------------------------------------------------------*/

#if !defined (__MXDBLIST_H)
#define __MXDBLIST_H

#include <string.h>

// data base object for user inherit
class dataobj
{
public:

    dataobj  *prevobj;
    dataobj  *nextobj;

    /* NOTE:
     *     you must overload this function to destroy your object,
     *  for examples, your has object 'MyObj' which drived from dataobj,
     *  the safeDelNode is here:
     *  void MyObj::safeDelNode( dataobj *toDel ) // himself
     *  {
     *     MyObj *cell = (MyObj *)toDel;
     *     // some code for free malloced memory
     *     delete  cell;
     *  }
     */

    virtual  void safeDelNode( dataobj  *obj ) const = 0;
    virtual  bool isEqual( dataobj * testobj ) const = 0;

};


class DBList
{
    dataobj *firstobject;
    dataobj *currobject;
    dataobj *tailobject;

public:

    int   curpos;
    int   total;

    DBList();
    virtual ~DBList() { deleteAll(); };

    dataobj *add(dataobj *);
    dataobj *addAtHead(dataobj *);
    dataobj *addAtTail(dataobj *);

    void     deleteAll();
    bool     deleteNode( int );

    dataobj *findMember( dataobj * tofind );
    bool     hasMember( dataobj  * obj );

    dataobj *operator[](int order);
    dataobj *forward( int steps = 1 );   // from cursor
    dataobj *nextward( int steps = 1 );  // from cursor

    dataobj *peekAt( int ); // from head
    int tellAt()
       {
       return curpos;
       }
    dataobj *getcurrent()
       {
       return currobject;
       }

    void forEach( void (*func)( dataobj &, int & ), int &);
};

#endif

⌨️ 快捷键说明

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