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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kbinarytree.cpp

?? 爾羅斯著名黑客寫的rootkit
?? CPP
字號:
#include "KBinaryTree.h"
#include "../KLocker/KLocker.h"

KBinaryTree::KBinaryTree(BTREE_COMPARE pCompare)
{
  m_pRootTree = NULL;
  m_pCompare = pCompare;
}

KBinaryTree::~KBinaryTree()
{
  if (m_pRootTree != NULL)
    delete m_pRootTree;
  m_pRootTree = NULL;
}

BOOLEAN KBinaryTree::IsEmpty()
{
  BOOLEAN bEmpty = TRUE;
  KLocker locker(&m_KSynchroObject);

  bEmpty = (BOOLEAN) (m_pRootTree == NULL);

  return bEmpty;
}

LONG KBinaryTree::GetDepth()
{
  LONG  nDepth = 0;
  KLocker locker(&m_KSynchroObject);

  if (m_pRootTree != NULL)
    nDepth = m_pRootTree->GetDepthNode();

  return nDepth;
}

KBinaryTreeNode* KBinaryTree::Insert(VOID* data, ULONG dwCompareParam)
{
  KBinaryTreeNode* pNode = NULL;
  KBinaryTreeNode* pNewNode = NULL;
  KLocker locker(&m_KSynchroObject);


  if (IsEmpty())
  {
    m_pRootTree = new KBinaryTreeNode(data, 0, NULL, NULL, NULL);
    pNewNode = m_pRootTree;
  }
  else
  {
    pNode = m_pRootTree->GetInsertPosition(data, m_pCompare, dwCompareParam);
    if (pNode != NULL)
    {
      pNewNode = new KBinaryTreeNode(data, 0, pNode, NULL, NULL);
      if (pNewNode != NULL)
      {
        if (m_pCompare != NULL)
        {
          if (m_pCompare(pNode->m_pData, data, dwCompareParam) == -1)
            pNode->m_pRight = pNewNode;
          else
            pNode->m_pLeft = pNewNode;
        }
        else
        {
          if ((DWORD)pNode->m_pData >= (DWORD)data)
          {
            pNode->m_pLeft = pNewNode;
          }
          else
          {
            if ((DWORD)pNode->m_pData < (DWORD)data)
              pNode->m_pRight = pNewNode;
          }
        }
        pNewNode->RestructureInsert();
        m_pRootTree = m_pRootTree->GetRootByNode();
      }
    }
  }

  return pNewNode;
}

BOOLEAN KBinaryTree::Delete(VOID* data, ULONG dwCompareParam)
{
  BOOLEAN     bRet = FALSE;
  KBinaryTreeNode* item;
  KBinaryTreeNode* startitem;
  KBinaryTreeNode* y;
  KBinaryTreeNode* z;
  KLocker locker(&m_KSynchroObject);


  if (!IsEmpty())
  {
    item = m_pRootTree->SearchByNode(data, m_pCompare, dwCompareParam);
    if (item != NULL)
    {
      // if we want to delete the root item, we have to do some extra
      // operation the preserve some pointers...
      if (item == m_pRootTree)
      {
        // the root is the only one node in the tree
        if (item->m_pLeft == NULL && item->m_pRight == NULL)
        {
          delete m_pRootTree;
          m_pRootTree = NULL;
          return TRUE;
        }
      }

      // start node for restructuration
      startitem = NULL;
      // node to delete has no children
      if (item->m_pLeft == NULL && item->m_pRight == NULL)
      {
        if (item->IsLeftSibling())
          item->m_pParent->m_pLeft = NULL;
        else
          item->m_pParent->m_pRight = NULL;
        startitem = item->m_pParent;
        delete item;
        item = NULL;
      }
      // node to delete has only right son
      if (item != NULL && item->m_pLeft == NULL && item->m_pRight != NULL)
      {
        item->m_pData = item->m_pRight->m_pData;
        item->m_pRight->m_pData = NULL;

        delete item->m_pRight;

        item->m_pRight = NULL;
        startitem = item;
      }
      // node to delete has only left son
      if (item != NULL && item->m_pLeft != NULL && item->m_pRight == NULL)
      {
        item->m_pData = item->m_pLeft->m_pData;
        item->m_pLeft->m_pData = NULL;

        delete item->m_pLeft;

        item->m_pLeft = NULL;
        startitem = item;
      }
      // node to delete has both sons
      if (item != NULL && item->m_pLeft != NULL && item->m_pRight != NULL)
      {
        y = item->m_pLeft->GetLastNodeInOrder();
        z = y->m_pLeft;

        item->m_pData = y->m_pData;
        y->m_pData = NULL;
        /*
        if (y->IsLeftSibling())
            y->Parent->Left = z;
        else
            y->Parent->Right = z;
        */
        if (z != NULL)
        {
          y->m_pData = z->m_pData;
          z->m_pData = NULL;
          y->m_pLeft = NULL;
          delete z;
          startitem = y;
        }
        else
        {
          if (y->IsLeftSibling())
             y->m_pParent->m_pLeft = NULL;
          else
             y->m_pParent->m_pRight = NULL;
          startitem = y->m_pParent;
          delete y;
        }
      }

      if (startitem != NULL)
        startitem->RestructureDelete();

      m_pRootTree = m_pRootTree->GetRootByNode();
      
      bRet = TRUE;
    }
  }

  return bRet;
}

KBinaryTreeNode* KBinaryTree::Search(VOID* data, ULONG dwCompareParam)
{
  KLocker locker(&m_KSynchroObject);
  KBinaryTreeNode* pNode = GetRoot();

  if (pNode != NULL)
    pNode = pNode->SearchByNode(data, m_pCompare, dwCompareParam);

  return pNode;
}

VOID* KBinaryTree::SearchData(VOID* data, ULONG dwCompareParam)
{
  KLocker locker(&m_KSynchroObject);
  KBinaryTreeNode* pNode = GetRoot();
  VOID*       pData = NULL;

  if (pNode != NULL)
  {  
    pNode = pNode->SearchByNode(data, m_pCompare, dwCompareParam);
    if (pNode != NULL)
      pData = pNode->m_pData;
  }

  return pData;
}

KBinaryTreeNode* KBinaryTree::GetRoot()
{
  KLocker locker(&m_KSynchroObject);
  return m_pRootTree;
}

VOID* KBinaryTree::GetRootData()
{
  KLocker locker(&m_KSynchroObject);
  KBinaryTreeNode* pNode;
  VOID*       pData = NULL;

  pNode = m_pRootTree;
  if (pNode != NULL)
    pData = pNode->m_pData;

  return pData;
}

LONG KBinaryTree::NodesInTree()
{
  KLocker locker(&m_KSynchroObject);
  LONG nNodes = 0;

  if (m_pRootTree != NULL)
    nNodes = m_pRootTree->NodesInTreeByNode();

  return nNodes;
}

BOOLEAN KBinaryTree::DeleteAll()
{
  KLocker locker(&m_KSynchroObject);
  BOOLEAN bRet = TRUE;

  if (m_pRootTree != NULL)
  {
    delete m_pRootTree;
    m_pRootTree = NULL;
  }

  return bRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产在线观看| 国产一区二区三区不卡在线观看| 久久这里只精品最新地址| 欧美片网站yy| 91精品欧美一区二区三区综合在| 欧美视频一二三区| 欧美巨大另类极品videosbest| 欧美日韩国产首页在线观看| 欧美日韩激情在线| 欧美一区二区三区的| 日韩一区二区电影网| 日韩三级视频在线观看| 精品乱码亚洲一区二区不卡| 久久久国产精品不卡| 国产精品乱子久久久久| 亚洲精品va在线观看| 日韩精品福利网| 国产一区二区精品久久91| 成人福利在线看| 欧美这里有精品| 日韩欧美精品三级| 欧美激情综合在线| 一区二区三区不卡在线观看 | 国产精品伦理在线| 色综合久久天天综合网| 亚洲少妇30p| 亚洲丝袜另类动漫二区| 在线国产亚洲欧美| 精品日韩欧美一区二区| 国产女主播视频一区二区| 国产精品视频看| 午夜激情久久久| 国产精品自产自拍| 色哟哟一区二区| 欧美精品一区二| 亚洲综合在线观看视频| 久久91精品久久久久久秒播| 91在线国产福利| 日韩欧美激情在线| 亚洲免费观看高清完整版在线观看熊 | 精品sm在线观看| 欧美激情一区二区三区四区| 日韩在线一区二区| 91亚洲精品久久久蜜桃网站| 欧美疯狂做受xxxx富婆| 一区在线观看免费| 极品少妇一区二区| 91精品国产福利| 一区二区三区中文免费| 国产99久久精品| 日韩欧美亚洲国产另类 | 欧美专区日韩专区| 国产精品人妖ts系列视频| 久久激情五月激情| 欧美中文字幕一区二区三区亚洲| 国产精品三级视频| 国产乱码精品一区二区三区五月婷| 色综合久久天天综合网| 国产精品三级av| 久久激情综合网| 韩国毛片一区二区三区| 5858s免费视频成人| 国产精品久久午夜夜伦鲁鲁| 日韩精品亚洲专区| 91免费版在线| 中文一区在线播放| 免费视频一区二区| 色哟哟一区二区在线观看| 久久久美女毛片| 亚洲第一主播视频| 99久久精品一区| 成人激情文学综合网| 精品无人码麻豆乱码1区2区| 蜜桃视频一区二区| 91网页版在线| 亚洲一区二区三区激情| 97精品久久久久中文字幕| 欧美不卡在线视频| 日韩电影在线一区二区| 色视频成人在线观看免| 中文一区一区三区高中清不卡| 韩国av一区二区三区四区| 欧美四级电影网| 亚洲精品乱码久久久久久 | 亚洲欧美中日韩| 99re66热这里只有精品3直播| 久久久久久久一区| 国产乱子轮精品视频| 精品国产一区二区国模嫣然| 毛片av中文字幕一区二区| 欧美一区二视频| 免费的国产精品| 色视频一区二区| 日韩电影免费一区| 91精品国产欧美一区二区成人| 三级在线观看一区二区| 91麻豆自制传媒国产之光| 亚洲人成电影网站色mp4| 色综合久久久久久久久久久| 亚洲国产一区二区在线播放| 91国偷自产一区二区使用方法| 最新国产精品久久精品| 欧美亚洲愉拍一区二区| 国产欧美一二三区| 7777精品伊人久久久大香线蕉超级流畅| 亚洲一区二区三区精品在线| 欧美日韩国产美| 久久99精品久久久久久| 欧美国产1区2区| 色婷婷久久久亚洲一区二区三区| 天天色综合天天| 国产亚洲自拍一区| www.色综合.com| 亚洲地区一二三色| 日韩欧美专区在线| 99在线精品免费| 午夜精品福利一区二区三区av | 极品销魂美女一区二区三区| 久久众筹精品私拍模特| 欧美中文字幕不卡| 久久97超碰色| 亚洲伦理在线精品| 69精品人人人人| 福利电影一区二区| 亚洲综合一区在线| 欧美va在线播放| 欧美日韩成人一区二区| 国产盗摄精品一区二区三区在线| 亚洲人成在线播放网站岛国| 欧美一区二区三区免费观看视频| 东方欧美亚洲色图在线| 婷婷国产v国产偷v亚洲高清| 91精品福利在线一区二区三区| 成人激情视频网站| 奇米精品一区二区三区在线观看| 中文字幕不卡三区| 日韩欧美一二区| 在线观看日韩精品| 成人a级免费电影| 天堂久久一区二区三区| 国产欧美精品在线观看| 欧美色综合天天久久综合精品| 国产成人啪午夜精品网站男同| 五月婷婷激情综合| 成人欧美一区二区三区小说| 日韩亚洲欧美成人一区| 欧美综合一区二区三区| 国产成人av电影在线观看| 日韩激情视频在线观看| 亚洲欧美日韩一区二区| 国产欧美一区二区精品性色超碰| 日韩一二三区不卡| 911精品产国品一二三产区| av电影天堂一区二区在线| 久久99热狠狠色一区二区| 亚洲综合一区二区| 亚洲另类在线制服丝袜| 国产精品成人一区二区艾草| 久久久久久久久岛国免费| 欧美日韩第一区日日骚| 337p亚洲精品色噜噜噜| 欧美视频完全免费看| 91激情五月电影| 色天天综合久久久久综合片| 99久久99久久综合| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 性做久久久久久免费观看| 一片黄亚洲嫩模| 依依成人精品视频| 亚洲精品美腿丝袜| 亚洲成人中文在线| 亚洲精品国产a久久久久久| 午夜激情综合网| 日本不卡免费在线视频| 蜜臀国产一区二区三区在线播放 | 色综合久久天天| 欧美三级电影在线看| 欧美日韩卡一卡二| 欧美一卡二卡三卡| 久久午夜国产精品| 国产精品无圣光一区二区| 一色屋精品亚洲香蕉网站| 樱花影视一区二区| 亚洲成人一区在线| 久久精品国产99国产| 国产精品小仙女| 日本久久一区二区三区| 欧美撒尿777hd撒尿| 日韩三级.com| 最新不卡av在线| 午夜欧美电影在线观看| 精品一区二区三区免费播放| 国产一区二区看久久| 一本大道久久a久久综合| 欧美视频在线一区| 国产精品白丝在线| 午夜精品久久久久影视| 国产大片一区二区| 欧美日韩国产美| 欧美激情一区不卡|