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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? p60_67.cpp

?? 殷人昆 數(shù)據(jù)結(jié)構(gòu) 一些書中的源代碼 系某師兄所做 c++版
?? CPP
字號(hào):
//Test is T60_67.cpp

#include <string.h>
#include <iostream.h>

const int maxLen = 128;			//字符串的最大長度

class String {
	//對(duì)象: 零個(gè)或多個(gè)字符的一個(gè)有限序列。
public:
    String ( const String & ob);		//復(fù)制構(gòu)造函數(shù), 由一個(gè)已有的字符串對(duì)象ob構(gòu)造一個(gè)新字符串。
    String ( const char *init );		//構(gòu)造函數(shù), 構(gòu)造一個(gè)最大長度為maxLen, 由init初始化的新字符串。
    String ( );					//構(gòu)造函數(shù), 構(gòu)造一個(gè)最大長度為maxLen, 實(shí)際長度為0的字符串。
    ~String ( ) { delete [ ] ch, f; }		//析構(gòu)函數(shù),釋放動(dòng)態(tài)分配的串空間。
    int Length ( ) const { return curLen; }		//函數(shù)返回串*this的長度。
    int String::fastFind ( String & pat ) const;
    void String::fail ( );
    String &operator ( ) ( int pos, int len );
	 //當(dāng) 0<=pos<=maxLen且0(len且pos+len<maxLen 時(shí), 則在串*this中從pos所指出
	 //位置開始連續(xù)取len個(gè)字符組成子串返回。
    int operator == ( const String &ob ) const { return strcmp (ch, ob.ch) == 0; }
	 //判是否串相等。若串*this與ob相等, 則函數(shù)返回1, 否則函數(shù)返回0。
    int operator != ( const String &ob ) const { return strcmp (ch, ob.ch) != 0; }
	 //判是否串不相等。若串*this與ob不相等, 則函數(shù)返回1, 否則函數(shù)返回0。
    int operator ! ( ) const { return curLen == 0; }
	 //判是否串空。若串*this為空, 則函數(shù)返回1, 否則函數(shù)返回0。
    String &operator = ( const String & ob );
	 //串ob賦值給當(dāng)前串*this
    String &operator += ( const String & ob );
	 //若 length(*this)+length(ob)<=maxLen, 則把串ob接在串*this后面。
    char &operator [ ] ( int i );
	 //取*this的第i個(gè)字符。
    int Find ( String &pat ) const;
	 //若串pat與串*this中的某個(gè)子串匹配, 則函數(shù)返回第1次匹配時(shí)子串在串*this中的
	 //位置。若串pat為空或在串*this中沒有匹配子串, 則函數(shù)返回-1。
    friend ostream & operator << (ostream& out , String s);
private:
    int curLen, *f ;								//串的長度
    char *ch;									//串存放數(shù)組
};

#include <iostream.h>
#include <process.h>

String::String ( const String &ob ) {					//串復(fù)制構(gòu)造函數(shù)
    ch = new char[maxLen+1];						//創(chuàng)建字符串?dāng)?shù)組
    if ( !ch ) { cout << "Allocation Error\n";  exit(1); }
    curLen = ob.curLen;							//串長度
    strcpy ( ch, ob.ch );							//串復(fù)制
}

String::String ( const char *init ) {						//串構(gòu)造函數(shù)
    ch = new char[maxLen+1];						//創(chuàng)建字符串?dāng)?shù)組
    if ( !ch ) { cout << "Allocation Error\n";  exit(1); }
    curLen = strlen (init);							//串長度
    strcpy ( ch, init );								//串復(fù)制
}

String::String ( ) {								//串構(gòu)造函數(shù)
    ch = new char[maxLen+1];						//創(chuàng)建字符串?dāng)?shù)組
    if ( !ch ) { cout << "Allocation Error\n";  exit(1); }
    curLen = 0;								//串長度
    ch[0] = '\0';								//空串
}

String &String::operator ( ) ( int pos, int len ) { 				//求子串
    String *temp = new String;						//創(chuàng)建一個(gè)空串
    if ( pos < 0 || pos+len-1 >= maxLen || len < 0 ) {			//參數(shù)不合理,不取子串
       temp->curLen = 0;  temp->ch[0] = '\0';
    }
    else {
	 if ( pos+len-1>=curLen ) len = curLen - pos;			//子串字符數(shù)不夠,取一部分
	 temp->curLen = len;
	 for ( int i=0, j=pos; i<len; i++, j++ ) temp->ch[i] = ch[j];
	 temp->ch[len] = '\0';
    }
    return *temp;
}

String &String::operator = ( const String &ob )	{			//串重載操作: 串賦值
    if ( &ob != this ) {							//若兩個(gè)串相等為自我賦值
	delete [ ] ch;								//刪去當(dāng)前串
	ch = new char [maxLen+1];						//重新分配,加一個(gè)字符放"\0"
	if ( ! ch ) {	cerr << "Out Of Memory!\n ";  exit (1);	}	//ch為空,分配失敗
	curLen = ob.curLen;
	strcpy ( ch, ob.ch );							//復(fù)制
    }
    else  cout << "Attempted assignment of a String to itself!\n";
    return *this;
}

String &String::operator += ( const String &ob ) { 			//串重載操作: 串連接
    char * temp =ch;								//保存將要覆蓋字符串的地址
    curLen += ob.curLen;							//結(jié)果串的長度
    ch = new char [maxLen+1];						//為結(jié)果串分配存儲(chǔ)
    if ( ! ch ) { cerr << "Out Of Memory!\n ";  exit (1) ; }
    strcpy ( ch, temp );							//結(jié)果串的前一部分
    strcat ( ch, ob.ch );							//結(jié)果串的后一部分
    delete [ ] temp;  return *this;						//釋放舊存儲(chǔ),返回結(jié)果串
}

char &String::operator [ ] ( int i ) {					//取*this的第i個(gè)字符
    if ( i < 0 && i >= curLen ) { cout << "Out Of Boundary!\n ";  exit (1) ; }
    return ch[i];
}

int String::Find ( String &pat ) const {

//若在串s(*this)中找不到與串pat匹配的子串, 則函數(shù)返回
//-1, 否則返回pat在*this中第一次匹配的位置。
     char *p = pat.ch, *s = ch;  int i = 0;		//i是開始位置
     if ( *p && *s )					//兩個(gè)串均不空
	while ( i <= curLen - pat.curLen )
	     if ( *p++ == *s++ ) {
		  if ( !*p ) return i;	  		//串pat掃描完, *p = 0
	     }						//匹配成功
	     else { i++;  s = ch+i;  p = pat.ch; }		//不匹配
	     //s指針進(jìn)1, p指針回到開始位置做下一趟比較
     return -1;			//pat為空或在s中找不到它   		  圖2.14  程序2.13的匹配過程
}

int String::fastFind ( String & pat ) const {
     int posP = 0,  posT = 0;					//兩個(gè)串的掃描指針
     int lengthP = pat.curLen,  lengthT = curLen;			//模式與目標(biāo)串的長度
     while ( posP < lengthP && posT < lengthT )			//對(duì)兩串掃描
	 if ( pat.ch[posP] == ch[posT] ) {				//對(duì)應(yīng)字符匹配
	    posP++;  posT++;
	 }
	 else if ( posP == 0 ) posT++;
	      else posP = pat.f [posP-1]+1;
     if ( posP < lengthP ) return -1;					//匹配失敗
     else return posT - lengthP;					//匹配成功
}

void String::fail ( ) {								//對(duì)模式p(*this), 計(jì)算失效函數(shù)
    int lengthP = curLen;
    f [0] = -1;
    for ( int j=1; j<lengthP; j++ ) {					//計(jì)算f [j]
	int i = f [j-1];
	while ( *(ch+j) != *(ch+i+1) && i >= 0 ) i = f [i];		//遞推計(jì)算f [j]
	if ( *(ch+j) == *(ch+i+1) ) f [j] = i+1;
	else f [j] = -1;
    }
}

ostream & operator << ( ostream & out, String s ) {
    if ( s.curLen == 0 ) out << "It is empty!";
    else {
	 for (int i=0 ; i < s.curLen ; i++ ) out << s.ch[i];
    }
    return out;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满美乳xxx高潮www| 亚洲三级在线播放| 国产一区二区三区在线观看免费视频 | 成人黄色777网| 中文一区在线播放| 欧美在线色视频| 日韩中文字幕av电影| 日韩女优电影在线观看| 国产麻豆精品在线观看| 国产精品久久久久久久裸模| 91丝袜美腿高跟国产极品老师| 一区二区三区四区激情| 欧美精品自拍偷拍| 国产在线国偷精品产拍免费yy| 久久精品视频一区二区| 91同城在线观看| 热久久国产精品| 国产女主播一区| 欧美性色黄大片| 美女www一区二区| 国产人伦精品一区二区| 色中色一区二区| 老司机午夜精品| 中文字幕欧美日本乱码一线二线| 97久久精品人人做人人爽50路| 亚洲第一在线综合网站| 日韩欧美专区在线| 91免费观看国产| 视频一区二区中文字幕| 日本一区二区三区电影| 欧美日韩在线三级| 国产一区二区精品久久99| 一区二区三区欧美日韩| 精品欧美一区二区三区精品久久| 91亚洲国产成人精品一区二区三| 日韩高清在线电影| 中文字幕亚洲一区二区av在线 | 91精品欧美久久久久久动漫| 成人小视频在线| 天天综合日日夜夜精品| 国产精品白丝在线| 欧美va亚洲va在线观看蝴蝶网| 91色在线porny| 国产精品伊人色| 偷拍一区二区三区| 亚洲精品高清在线观看| 亚洲精品一区二区三区精华液 | 在线播放/欧美激情| 不卡一区中文字幕| 久久97超碰国产精品超碰| 亚洲一区二区免费视频| 国产精品护士白丝一区av| 久久亚洲综合色一区二区三区| 欧美自拍丝袜亚洲| 99久久精品国产毛片| 国产二区国产一区在线观看| 日韩中文字幕1| 一区二区三区电影在线播| 中文字幕av不卡| 久久精品一区二区三区不卡牛牛 | 91蜜桃在线免费视频| 国产精品996| 久草精品在线观看| 美女尤物国产一区| 日韩高清欧美激情| 午夜激情一区二区| 午夜精品aaa| 日韩av电影天堂| 午夜精品免费在线观看| 午夜精品久久久久久久久久 | 美国十次综合导航| 天堂va蜜桃一区二区三区漫画版| 一区二区三区欧美亚洲| 亚洲精品你懂的| 亚洲精品免费在线观看| 亚洲黄色av一区| 亚洲女同一区二区| 亚洲综合在线观看视频| 一区二区三区日韩欧美| 亚洲国产视频网站| 亚洲123区在线观看| 视频一区二区中文字幕| 免费高清在线视频一区·| 美女久久久精品| 国产一区二区主播在线| 国产成人日日夜夜| 成人高清视频在线观看| 97se亚洲国产综合在线| 在线视频综合导航| 4438亚洲最大| 精品日韩一区二区三区| 国产精品入口麻豆九色| 一区二区在线观看免费视频播放| 亚洲成人一区二区| 美国三级日本三级久久99| 国产精品亚洲视频| proumb性欧美在线观看| 欧美综合亚洲图片综合区| 91精品国产综合久久久久| 日韩欧美国产综合一区| 欧美国产日韩一二三区| 一区二区三区不卡视频在线观看| 日韩精品福利网| 国产乱色国产精品免费视频| 不卡的电影网站| 在线免费不卡电影| 欧美成人一区二区三区| 中文字幕一区二区三区在线不卡 | 欧美三区在线视频| 欧美成人精品3d动漫h| 欧美韩国日本综合| 亚洲国产精品天堂| 高清在线成人网| 欧美老肥妇做.爰bbww视频| 久久午夜羞羞影院免费观看| 亚洲三级在线观看| 久久精工是国产品牌吗| 91在线视频18| 精品久久久久久亚洲综合网| 亚洲精品一二三| 国产精品夜夜爽| 欧美美女黄视频| 国产精品乱人伦一区二区| 亚洲国产精品人人做人人爽| 国产在线精品国自产拍免费| 欧美亚洲动漫制服丝袜| 欧美精品一区二区在线播放| 一卡二卡三卡日韩欧美| 国产精品一二三在| 777色狠狠一区二区三区| 国产精品国产三级国产| 精品在线亚洲视频| 欧美在线|欧美| 国产精品全国免费观看高清| 久久爱www久久做| 欧美日韩一区二区三区高清| 国产精品美女视频| 国产一区二区女| 欧美一区二区三级| 亚洲一区在线观看免费观看电影高清| 国产精品18久久久久久久久| 制服丝袜在线91| 一区二区在线免费观看| 99久久精品国产毛片| 国产午夜精品美女毛片视频| 麻豆freexxxx性91精品| 69p69国产精品| 亚洲亚洲人成综合网络| 91免费版pro下载短视频| 国产精品女同一区二区三区| 国产一级精品在线| 欧美刺激脚交jootjob| 蜜桃av一区二区在线观看| 在线不卡a资源高清| 亚洲成人综合网站| 欧美色图一区二区三区| 亚洲精品美国一| 91啪九色porn原创视频在线观看| 欧美激情在线免费观看| 国产精品自拍毛片| 国产午夜精品一区二区三区视频| 久久精品av麻豆的观看方式| 欧美www视频| 国产在线精品一区二区夜色| 精品国产一区二区国模嫣然| 久久成人av少妇免费| 日韩精品中文字幕一区二区三区| 日韩av中文在线观看| 欧美一区二区视频网站| 麻豆精品国产91久久久久久| 日韩免费福利电影在线观看| 卡一卡二国产精品 | 中文久久乱码一区二区| 成人一区二区三区中文字幕| 中文字幕一区二区三区视频| 色视频一区二区| 午夜精品久久久久| 精品日产卡一卡二卡麻豆| 国产一区二区三区在线观看免费视频| 久久色.com| 成人av网址在线| 亚洲九九爱视频| 欧美片网站yy| 极品少妇xxxx精品少妇| 国产日韩欧美a| 99精品欧美一区二区三区小说| 亚洲免费观看高清完整版在线| 欧美日韩在线播放| 狠狠色狠狠色综合| 中文字幕一区二区在线观看 | 裸体在线国模精品偷拍| 2023国产精品自拍| a级高清视频欧美日韩| 亚洲午夜一二三区视频| 欧美一区二区美女| 国产精品一区二区三区99| 亚洲激情网站免费观看| 日韩欧美区一区二| 97se亚洲国产综合自在线| 日韩中文字幕一区二区三区|