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

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

?? tvreinsert.c

?? TV-tree的c實現源碼
?? C
字號:
/*                    COPYRIGHT NOTICE This material was developed by Christos Faloutsos and King-Ip Linat the University of Maryland, College Park, Department of Computer Science.Permission is granted to copy this software, to redistribute iton a nonprofit basis, and to use it for any purpose, subject tothe following restrictions and understandings. 1. Any copy made of this software must include this copyright noticein full. 2. All materials developed as a consequence of the use of thissoftware shall duly acknowledge such use, in accordance with the usualstandards of acknowledging credit in academic research. 3. The authors have made no warranty or representation that theoperation of this software will be error-free or suitable for anyapplication, and they are under under no obligation to provide anyservices, by way of maintenance, update, or otherwise.  The softwareis an experimental prototype offered on an as-is basis. 4. Redistribution for profit requires the express, written permissionof the authors. */// Author : $Author$// Date : $Date$// Id : $Id$// $Id: reinsert.C,v 1.3 1996/04/18 21:50:24 kilin Exp kilin $ // Please change sig_dim to active_dim#include <iostream.h>#include <assert.h>#include <stdlib.h>#include <fstream.h>#include "TVdefine.h"#include "TVconstants.h"#include "TVvector.h"#include "TVrectangle.h"//#include "TVrectangle.h"#include "TVelement.h"#include "TVsimbuf.h"#include "TVnode.h"#include "TVutil.h"#include "TVreinsert.h"// reinsertnodeReInsertTVNode::ReInsertTVNode(){  next = NULL;}FRType ReInsertTVNode::Type(){  return not_defined;}// Reinsertnode for elementsReInsertTVNode_element::ReInsertTVNode_element(){  next = NULL;}ReInsertTVNode_element::ReInsertTVNode_element(const ReInsertTVNode_element& ric){   entry = ric.entry;   next = ric.next;}ReInsertTVNode_element::~ReInsertTVNode_element(){}ReInsertTVNode_element& ReInsertTVNode_element::operator=(const ReInsertTVNode_element& ric){   entry = ric.entry;   next = ric.next;   return *this;}FRType ReInsertTVNode_element::Type(){  return is_leafele;}void ReInsertTVNode_element::Put(TVNodeEntry& ne){   assert(ne.Type() == is_leafele);   entry = *ne.u.e;}void ReInsertTVNode_element::Put(const Leaf_Element& le){   entry = le;}Leaf_Element ReInsertTVNode_element::Get_element(){  return entry;}// Reinsert node for branchReInsertTVNode_branch::ReInsertTVNode_branch(){  next = NULL;}ReInsertTVNode_branch::ReInsertTVNode_branch(const ReInsertTVNode_branch& ric){   entry = ric.entry;   next = ric.next;}ReInsertTVNode_branch::~ReInsertTVNode_branch(){}ReInsertTVNode_branch& ReInsertTVNode_branch::operator=(const ReInsertTVNode_branch& ric){   entry = ric.entry;   next = ric.next;   return *this;}FRType ReInsertTVNode_branch::Type(){  return is_branch;}void ReInsertTVNode_branch::Put(TVNodeEntry& ne){   assert(ne.Type() == is_branch);   entry = *ne.u.b;}void ReInsertTVNode_branch::Put(const TVBranch& b){   entry = b;}TVBranch ReInsertTVNode_branch::Get_branch(){  return entry;}// A stack for the elements to be reinsertedReInsertStack::ReInsertStack(){   head.next =  NULL;}ReInsertStack::~ReInsertStack(){    while (head.next)      {        ReInsertTVNode *current = head.next;        head.next = head.next->next;        delete current;      }}void ReInsertStack::Push(const TVNodeEntry& ne){   ReInsertTVNode *rin;   if (ne.Type() == is_branch)      {        rin =  new ReInsertTVNode_branch;        rin->Put(*ne.u.b);      }   else      {        rin =  new ReInsertTVNode_element;        rin->Put(*ne.u.e);      }   rin->next = head.next;   head.next = rin;}void ReInsertStack::Push(const Leaf_Element& le){   ReInsertTVNode *rin =  new ReInsertTVNode_element;   rin->Put(le);   rin->next = head.next;   head.next = rin;}void ReInsertStack::Push(const TVBranch& b){   ReInsertTVNode *rin =  new ReInsertTVNode_branch;   rin->Put(b);   rin->next = head.next;   head.next = rin;}Leaf_Element ReInsertStack::Pop_element(){   Leaf_Element result;   if ((head.next) && (head.next->Type() == is_leafele))      {        result = head.next->Get_element();        ReInsertTVNode* freenode = head.next;        head.next = head.next->next;//	((ReInsertTVNode_element *)freenode)->ReInsertTVNode_element::~ReInsertTVNode_element();        delete freenode;      }   return result;}TVBranch ReInsertStack::Pop_branch(){   TVBranch result;   if ((head.next) && (head.next->Type() == is_branch))      {        result = head.next->Get_branch();        ReInsertTVNode* freenode = head.next;        head.next = head.next->next;        delete freenode;      }   return result;}Leaf_Element ReInsertStack::Top_element(){   Leaf_Element result;   if ((head.next) && (head.next->Type() == is_leafele))        result = head.next->Get_element();   return result;}TVBranch ReInsertStack::Top_branch(){   TVBranch result;   if ((head.next) && (head.next->Type() == is_branch))        result = head.next->Get_branch();   return result;}FRType ReInsertStack::Top_type(){  return head.next->Type();}int ReInsertStack::NonEmpty(){  return (head.next != NULL);}ostream& operator<< (ostream& os, const ReInsertStack& ris){   ReInsertTVNode *current = ris.head.next;   if (!(current))      cout << "Empty stack  ";   while (current)      {        if (current->Type() == is_leafele)           cout << current->Get_element() << "\n";        else if (current->Type() == is_branch)                cout << current->Get_branch() << "\n";             else cout << "Oops!  ";        current = current->next;      }   return os;}// Reinsert classReInsertClass::ReInsertClass(int height){   assert (height >= 0);   no_of_levels = height;   havereinserted = new int[no_of_levels];   reinsertst = new ReInsertStack[no_of_levels];   for (int i = 0; i < no_of_levels; i++)       havereinserted[i] = 0;}ReInsertClass::~ReInsertClass(){   for (int i = 0; i < no_of_levels; i++)       reinsertst[i].ReInsertStack::~ReInsertStack();   delete [] reinsertst;   delete [] havereinserted;}ReInsertClass::ReInsertClass(const ReInsertClass& ric){  no_of_levels = ric.no_of_levels;  reinsertst = new ReInsertStack[no_of_levels];  havereinserted = new int [no_of_levels];  for (int i = 0; i < no_of_levels; i++)      {         reinsertst[i] = ric.reinsertst[i];         havereinserted[i] = ric.havereinserted[i];      }}ReInsertClass& ReInsertClass::operator=(const ReInsertClass& ric){  no_of_levels = ric.no_of_levels;  reinsertst = new ReInsertStack[no_of_levels];  havereinserted = new int [no_of_levels];  for (int i = 0; i < no_of_levels; i++)      {         reinsertst[i] = ric.reinsertst[i];         havereinserted[i] = ric.havereinserted[i];      }  return *this;}void ReInsertClass::Add(const TVNodeEntry& ne, const int level){   assert(level < no_of_levels);   reinsertst[level].Push(ne);}void ReInsertClass::Add(const Leaf_Element& le, const int level){   assert(level < no_of_levels);   reinsertst[level].Push(le);}void ReInsertClass::Add(const TVBranch& b, const int level){   assert(level < no_of_levels);   reinsertst[level].Push(b);}FRType ReInsertClass::Top_type(const int level){   assert(level < no_of_levels);   return reinsertst[level].Top_type();}Leaf_Element ReInsertClass::Pop_element(const int level){   assert(level < no_of_levels);   assert(reinsertst[level].Top_type() == is_leafele);   return reinsertst[level].Pop_element();}TVBranch ReInsertClass::Pop_branch(const int level){   assert(level < no_of_levels);   assert(reinsertst[level].Top_type() == is_branch);   return reinsertst[level].Pop_branch();}Leaf_Element ReInsertClass::Top_element(const int level){   assert(level < no_of_levels);   assert(reinsertst[level].Top_type() == is_leafele);   return reinsertst[level].Top_element();}TVBranch ReInsertClass::Top_branch(const int level){   assert(level < no_of_levels);   assert(reinsertst[level].Top_type() == is_branch);   return reinsertst[level].Top_branch();}int ReInsertClass::NonEmpty(int level){   assert(level < no_of_levels);   return reinsertst[level].NonEmpty();}int ReInsertClass::NonEmpty(){   int i = 0;   for (; (i < no_of_levels) && !(reinsertst[i].NonEmpty()); i++)	;   return (i < no_of_levels);}ostream& operator<< (ostream& os, const ReInsertClass& ric){   for (int i = 0; i < ric.no_of_levels; i++)      {        cout << "Level " << i << "  :  ";        cout << ric.reinsertst[i];      }   return os;}// Use for calculating where to reinsertReInsertCal::ReInsertCal(){   distance = 0.0;}ReInsertCal::ReInsertCal(const ReInsertCal& ric){  ne = ric.ne;  distance = ric.distance;}ReInsertCal& ReInsertCal::operator=(const ReInsertCal& ric){  ne = ric.ne;  distance = ric.distance;  return *this;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.av亚洲| 欧美日韩不卡一区| 欧美视频在线不卡| 久久综合久色欧美综合狠狠| 亚洲欧美色一区| 国产剧情av麻豆香蕉精品| 欧美日韩激情一区二区| 国产精品蜜臀在线观看| 国产一区视频导航| 6080午夜不卡| 一二三区精品视频| av中文字幕亚洲| 国产日韩欧美高清在线| 免费成人性网站| 欧美美女喷水视频| 亚洲欧美色图小说| 97精品超碰一区二区三区| 久久久久久免费网| 久久成人18免费观看| 欧美一区二区三区免费视频| 一区二区在线观看视频在线观看| 成人免费视频caoporn| 精品国产乱码久久久久久图片| 亚洲mv大片欧洲mv大片精品| 日本韩国一区二区| 亚洲欧美一区二区三区国产精品| 成人美女在线观看| 一区二区三区四区视频精品免费 | 久久嫩草精品久久久精品一| 男女男精品视频网| 欧美一区二区二区| 青青草原综合久久大伊人精品 | 国产成人免费9x9x人网站视频| 91精品国产色综合久久ai换脸| 亚洲国产成人tv| 欧美日韩三级一区| 五月婷婷久久综合| 欧美成人激情免费网| 久久av资源站| 国产欧美一区二区三区在线看蜜臀| 寂寞少妇一区二区三区| 久久精品亚洲精品国产欧美kt∨| 国产精品一区专区| 中文字幕二三区不卡| av高清久久久| 亚洲免费在线电影| 在线成人高清不卡| 精品无人码麻豆乱码1区2区 | av资源网一区| 一区二区三区资源| 在线免费观看一区| 看电影不卡的网站| 欧美激情一区二区三区全黄| 97成人超碰视| 亚洲成a人片综合在线| 欧美一级欧美一级在线播放| 国产美女视频一区| 亚洲视频免费在线| 欧美一区二区三区视频在线| 国产一区二区在线电影| 亚洲色图在线看| 91精品国产色综合久久不卡蜜臀| 国产精品自拍网站| 一区二区三区四区激情| 日韩欧美国产麻豆| 99国产精品国产精品毛片| 午夜精品久久久久久久 | 在线影院国内精品| 视频在线观看91| 久久久久久**毛片大全| 色综合久久中文字幕综合网 | 中文字幕佐山爱一区二区免费| 欧美日韩精品一区二区天天拍小说| 久久99精品久久久久久久久久久久| 亚洲国产精品v| 69久久99精品久久久久婷婷| 成人免费毛片高清视频| 奇米精品一区二区三区在线观看一| 中文字幕av资源一区| 欧美日韩久久一区二区| 成人黄色小视频在线观看| 视频在线观看91| 亚洲人精品午夜| 国产日韩三级在线| 欧美日韩精品高清| 91丨porny丨首页| 国内精品视频666| 亚洲成人av福利| 亚洲欧洲性图库| 久久久精品综合| 欧美一区二区三区人| 欧美亚洲一区三区| 99国产精品久| 不卡一区二区中文字幕| 久久精品国产免费| 日韩精品电影在线观看| 亚洲综合在线电影| 欧美国产日本韩| 久久精品免视看| 精品蜜桃在线看| 日韩一区二区三区在线| 欧美日韩视频一区二区| 91黄色免费网站| 91碰在线视频| 99精品视频在线观看| 成人黄色在线网站| 粉嫩蜜臀av国产精品网站| 国产精品一区二区久久精品爱涩| 蜜臀久久99精品久久久久宅男| 五月婷婷综合网| 视频一区视频二区中文字幕| 五月激情综合色| 日韩国产欧美三级| 日本视频中文字幕一区二区三区| 亚洲第一激情av| 香蕉成人啪国产精品视频综合网| 亚洲一区二区在线视频| 亚洲一级不卡视频| 亚洲成人自拍偷拍| 日日夜夜精品视频天天综合网| 亚洲一区二区精品3399| 午夜精品123| 另类小说视频一区二区| 精品在线免费观看| 国产成人免费在线视频| 大白屁股一区二区视频| av网站一区二区三区| 日本久久电影网| 欧美久久久久免费| 日韩视频免费直播| 久久精品水蜜桃av综合天堂| 欧美国产成人精品| 亚洲欧美国产毛片在线| 午夜久久久久久| 九九热在线视频观看这里只有精品| 狠狠狠色丁香婷婷综合久久五月| 国产成人免费在线观看不卡| av电影一区二区| 欧美日韩电影一区| 精品国产一区二区三区久久影院| 精品盗摄一区二区三区| 国产精品久久毛片a| 亚洲一区二区影院| 精东粉嫩av免费一区二区三区| 国产精品996| 欧美在线观看一二区| 欧美大肚乱孕交hd孕妇| 国产精品久久久久影院老司| 亚洲成人在线免费| 国产成人综合网站| 欧美性猛片aaaaaaa做受| 精品国偷自产国产一区| 亚洲裸体在线观看| 久久精品国产一区二区三区免费看| 成人免费黄色大片| 欧美日韩中文另类| 国产欧美视频一区二区三区| 夜夜精品视频一区二区| 国产裸体歌舞团一区二区| 色8久久人人97超碰香蕉987| 久久午夜免费电影| 亚洲午夜羞羞片| 成人99免费视频| 欧美大白屁股肥臀xxxxxx| 亚洲欧美日本韩国| 国产一区二区福利视频| 欧美日韩久久不卡| 国产精品久久久久久久久免费相片 | 日韩三级高清在线| 亚洲精品你懂的| 国产精品一卡二| 欧美一区二区播放| 夜夜嗨av一区二区三区网页 | 久久久久久久久久久久久久久99| 亚洲午夜免费福利视频| 成人激情小说网站| 欧美成人精品二区三区99精品| 亚洲午夜精品网| 不卡的电影网站| 久久久久久久久蜜桃| 日本不卡一区二区三区高清视频| 91精品福利视频| **网站欧美大片在线观看| 国产不卡视频在线观看| 日韩精品一区二区三区视频 | 色天天综合久久久久综合片| 国产日产精品1区| 极品美女销魂一区二区三区| 日韩一卡二卡三卡国产欧美| 亚洲成人午夜影院| 欧美色电影在线| 夜夜嗨av一区二区三区| 色婷婷综合五月| 亚洲另类在线制服丝袜| 91美女片黄在线观看| 亚洲欧美日韩国产中文在线| 91麻豆国产精品久久| 亚洲三级在线免费| 91黄色在线观看| 亚洲一区在线视频|