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

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

?? tvsimbuf.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$// $Source: /afs/alm/cs/quest/subseq/src2/RCS/rplus_simbuf.c,v $// $Author: davelin $// $Date: 1995/02/25 02:33:09 $// $Revision: 9.1 $#include <stdlib.h>#include <iostream.h>#include <fstream.h>#include "TVdefine.h"// extra include file for use in subsequence matching#include "TVsimbuf.h"Storage::Storage(int ps, int buffercount) {    pagesize = ps;   nextpage = 1;     // initialize buffers   bufmaxcount = buffercount;   diskpagenumber = new PageNumber[bufmaxcount];   dirty = new int[bufmaxcount];    bufcount = 0;   int i;   for (i = 0; i < bufmaxcount; i++)      {         diskpagenumber[i] = BUFAVAILABLE;         dirty[i] = FALSE;      }   // For LRU    ptrtoqnode = new DoublyLinkedListTVNode*[bufmaxcount];   for (i = 0; i < bufmaxcount; i++)      {        ptrtoqnode[i] = new DoublyLinkedListTVNode(i);	LRUqueue.inserttail(ptrtoqnode[i]);      }    // For round robin   int nextrelease = 0;   // Initialize stats   initstats();}Storage::~Storage() {   delete [] diskpagenumber;  delete [] dirty;}Storage& Storage::initstats(){   readrequestcount = 0;   writerequestcount = 0;   diskfetchcount = 0;   pagewritecount = 0;   return *this;}void Storage::MovetoLRUtail(const BufPageNumber pn){   LRUqueue.deletenode(ptrtoqnode[pn]);   LRUqueue.inserttail(ptrtoqnode[pn]);}Storage& Storage::fetch(PageNumber pn){  readrequestcount++;  int i = SearchPage(pn);  if (i == BUFNOTFOUND)     {       // Not in buffer, fetch a buffer to store it       BufPageNumber bpn = GetFreeBufNum();       diskpagenumber[bpn] = pn;       fetchfromstorage(bpn, pn);       MovetoLRUtail(bpn);     }  else     MovetoLRUtail(i);  return *this;}Storage& Storage::writepage(PageNumber pn){  writerequestcount++;  int i = SearchPage(pn);  if (i != BUFNOTFOUND)     {        dirty[i] = TRUE;        MovetoLRUtail(i);     }  return *this;}Storage& Storage::flushbuffer(){  for (BufPageNumber i = 0; i < bufmaxcount; i++)      writetostorage(i);   return *this;}Storage& Storage::emptybuffer(){  for (BufPageNumber i = 0; i < bufmaxcount; i++)   {      writetostorage(i);       diskpagenumber[i] = BUFAVAILABLE;   }   return *this;}PageNumber Storage::newpage(){//cout << "Assign new page\n";  BufPageNumber freebufnum = GetFreeBufNum();  diskpagenumber[freebufnum] = nextpage;  dirty[freebufnum] = TRUE;  MovetoLRUtail(freebufnum);  return nextpage++;}int Storage::getpagesize() {  return pagesize;}// Make that page useable againStorage& Storage::clearpage(PageNumber pn){  int i = SearchPage(pn);  if (i != BUFNOTFOUND)     dirty[i] = FALSE;  return *this;} BufPageNumber Storage::GetFreeBufNum(){   BufPageNumber i;   for (i = 0; (i < bufmaxcount) && (diskpagenumber[i] != BUFAVAILABLE); i++)       ;   BufPageNumber res;   if (i == bufmaxcount)      {         // Find a replacement         /*         writetostorage(nextrelease);         res = nextrelease++;	 nextrelease = nextrelease % bufmaxcount;	 */         res = LRUqueue.headnum(); 	 writetostorage(res);      }    else       res = i;   return res;}// return Bufpagenumber,// return BUFNOTFOUND is NOT foundBufPageNumber Storage::SearchPage(PageNumber pn){  BufPageNumber i;  for (i = 0; (i < bufmaxcount) && (diskpagenumber[i] != pn); i++)      ;  return (i == bufmaxcount ? BUFNOTFOUND : i);} void Storage::fetchfromstorage(BufPageNumber bpn, PageNumber pn){   diskfetchcount++;   diskpagenumber[bpn] = pn;} void Storage::writetostorage(BufPageNumber bpn){    if (dirty[bpn])       {	  pagewritecount++; 	  dirty[bpn] = FALSE;       }}void Storage::printstats(ostream& os) const{   os << "Read request : " << readrequestcount << "  Write request : " << writerequestcount;   os << "  Disk fetch : " << diskfetchcount << "  Pgae writes : " << pagewritecount;}  ostream& operator<<(ostream& os, const Storage& s){   os << "Pagesize : " << s.pagesize << "   No. of buffers : " << s.bufmaxcount << endl;   os << "Total page used : " << s.nextpage - 1 << endl;   DoublyLinkedListTVNode *p = s.LRUqueue.head->next;   os << "Buffer content : {" <<  s.diskpagenumber[p->bpn] << (s.dirty[0] ? "*" : "");   p = p->next;   while (p != s.LRUqueue.head)      {        os << ", " <<  s.diskpagenumber[p->bpn] << (s.dirty[0] ? "*" : "");	p = p->next;      }   os << "}\n";   s.printstats(os);   return os;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡手机在线v区| 亚洲欧洲精品一区二区三区不卡| 99精品视频在线免费观看| 韩国女主播成人在线观看| 美女诱惑一区二区| 久久精品国产亚洲高清剧情介绍 | 理论电影国产精品| 免费日本视频一区| 激情综合色播五月| 国产精品一区二区视频| 国产91丝袜在线18| 色综合久久99| 欧美视频一区二区在线观看| 91精品国产欧美一区二区| 日韩免费性生活视频播放| 欧美精品一区二区久久婷婷| 欧美—级在线免费片| 亚洲日本免费电影| 日韩激情中文字幕| 国产一区二区电影| 91丨九色丨国产丨porny| 欧美图区在线视频| 欧美va亚洲va| 最新国产精品久久精品| 亚洲成av人片在线| 国产一区二区电影| 欧美午夜一区二区| 国产欧美日韩久久| 一区二区三区四区蜜桃| 日韩精品乱码免费| 成人免费不卡视频| 欧美日韩国产一区| 欧美国产日产图区| 午夜精品久久久久| 夫妻av一区二区| 欧美久久一二三四区| 国产精品天天摸av网| 亚洲国产一区二区在线播放| 国产美女视频91| 欧美午夜理伦三级在线观看| 久久久精品人体av艺术| 午夜精品久久久久久久99樱桃| 国产美女在线观看一区| 4438亚洲最大| 亚洲蜜桃精久久久久久久| 精品一区二区三区视频| 在线观看欧美黄色| 国产精品天美传媒| 乱一区二区av| 欧美日韩一区二区在线观看视频| 国产午夜精品久久久久久免费视| 日本美女一区二区三区视频| 色婷婷精品久久二区二区蜜臂av| 久久婷婷色综合| 麻豆精品精品国产自在97香蕉| 欧美又粗又大又爽| 国产精品欧美久久久久无广告| 久久av老司机精品网站导航| 欧美性猛交一区二区三区精品| 欧美国产成人精品| 国产精品一区二区无线| 亚洲精品在线免费播放| 日本一区中文字幕 | 亚洲国产欧美在线| 91无套直看片红桃| 国产精品久久久久婷婷| 国产二区国产一区在线观看| 日韩免费电影网站| 免费在线观看一区二区三区| 欧美日韩在线免费视频| 亚洲亚洲人成综合网络| 91黄色激情网站| 一级日本不卡的影视| 一本色道久久综合亚洲91| 国产精品传媒在线| 99re66热这里只有精品3直播| 欧美高清在线一区二区| 国产suv精品一区二区6| 中文字幕 久热精品 视频在线| 国内成人精品2018免费看| 精品国产欧美一区二区| 国产精品99久久久| 国产欧美精品一区二区三区四区| 国产成人免费视频网站| 欧美国产精品v| 色哟哟国产精品免费观看| 一区二区三区国产豹纹内裤在线| 91国产福利在线| 午夜精品久久久久久久99樱桃| 欧美一二三四区在线| 国产一区二区成人久久免费影院 | 中文字幕一区二区5566日韩| 91在线免费播放| 亚洲成人免费观看| 欧美va亚洲va在线观看蝴蝶网| 国产乱人伦偷精品视频不卡 | 亚洲一区日韩精品中文字幕| 欧美性生活久久| 麻豆国产欧美一区二区三区| 国产亚洲综合av| 在线观看视频欧美| 久久精品国产精品亚洲精品| 久久精品免费在线观看| 在线观看一区二区精品视频| 日av在线不卡| 亚洲欧美一区二区三区孕妇| 9191精品国产综合久久久久久| 国产综合色在线| 一级中文字幕一区二区| 久久久久久久久99精品| 91久久精品网| 国产精品综合一区二区三区| 亚洲激情成人在线| 久久久久久**毛片大全| 欧美性xxxxxxxx| 国产精品自拍一区| 日日骚欧美日韩| 国产精品无码永久免费888| 欧美精品丝袜中出| 白白色亚洲国产精品| 免费高清在线视频一区·| 国产精品网曝门| 欧美电影免费提供在线观看| 99精品欧美一区| 国产精品一区二区男女羞羞无遮挡| 有码一区二区三区| 欧美国产综合色视频| 欧美一级夜夜爽| 欧洲精品一区二区三区在线观看| 国产精品一区二区在线播放| 五月婷婷欧美视频| 亚洲最快最全在线视频| 亚洲国产精品av| 26uuu久久综合| 日韩欧美一区电影| 欧美群妇大交群的观看方式| 91丨porny丨在线| 国产成人免费视频一区| 久久精品国产99国产| 午夜精品一区二区三区电影天堂 | 欧美裸体bbwbbwbbw| 色综合久久66| 99这里都是精品| 国产黄色精品视频| 国产在线视频一区二区三区| 天堂成人免费av电影一区| 亚洲国产综合在线| 亚洲一区二区三区激情| 亚洲美女电影在线| 亚洲免费观看在线视频| 1区2区3区国产精品| 中文字幕日韩av资源站| 欧美激情在线观看视频免费| 久久久久久免费| 国产女人18毛片水真多成人如厕| 久久精品人人做人人综合| 久久一日本道色综合| 久久众筹精品私拍模特| 久久理论电影网| 国产欧美日韩三级| 中文字幕在线不卡| 亚洲色图欧美激情| 亚洲成人动漫在线观看| 日韩电影一二三区| 九九九精品视频| 国产mv日韩mv欧美| 93久久精品日日躁夜夜躁欧美| 色综合久久久久久久久| 欧美日韩国产经典色站一区二区三区| 欧美亚洲国产bt| 777亚洲妇女| 久久久另类综合| 亚洲精品免费一二三区| 偷拍与自拍一区| 国产自产高清不卡| 99综合电影在线视频| 欧美日韩三级视频| 欧美成人video| 综合婷婷亚洲小说| 丝袜亚洲另类欧美综合| 国内精品视频一区二区三区八戒| 不卡高清视频专区| 欧美疯狂做受xxxx富婆| 国产午夜久久久久| 一区二区三区久久久| 国产一区二区三区免费| 色老头久久综合| 久久综合国产精品| 亚洲一区二区免费视频| 国产一区欧美日韩| 在线观看视频欧美| 久久精品这里都是精品| 亚洲国产成人精品视频| 国产福利一区二区| 欧美日韩在线播放| 中文字幕免费观看一区| 日韩电影在线免费| 91国内精品野花午夜精品| 久久久久成人黄色影片| 午夜精品aaa|