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

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

?? hashtable.h

?? 主要顯示了圖書館信息系統的查詢
?? H
字號:
template <class T, class N>
struct HashTableNode
{
	T varValue;
	N varName;
	HashTableNode<T, N> *next;
	N Scope;
	N alias;   //will hold the full name of whatever it is pointing to.
};	

template <class T,class N>
class hashtable
{
	private:
	N currentScope()
		{
			return Scope.Value();
		}

	int hash(N varName,int moder = 10)
		{
			int i = 0;
			for(int q = 0;( q < varName.len() + 1);q++)
				i = i + (q * varName[q]);
			i = i % moder;
			return i;
		}

	public:
		HashTableNode<T, N> *HTNode[10];
		
		hashtable()
		{
			for(int i = 0;i < 10;i++)
				HTNode[i] = NULL;
			Scope.Push("Global");
			ScopeID = "GlobalScope";
		}
		
		~hashtable()
		{
			for (int i = 0;i< 10;i++)
			{
				HTNode[i] = NULL;
			}
		}
		
		
		bool newScope(N ScopeName = "")
		{
			if (ScopeID == "")
			{
				ScopeID = "SystemScope";
				//return true;
			}
			if (ScopeName != "")
			{
				node<N> *temp;
				temp = Scope.First;
				while (temp != NULL)
				{
					if (temp->value == ScopeName) 
					{
						newScope (ScopeName + "X");
						return true;
					}
					temp = temp->next;
				}
				delete [] temp;
				Scope.Push(ScopeName);
				if (Debug) cout << "Starting" << ScopeName << endl;
				return true;
			}
			else
			{
				ScopeID += "X";
				Scope.Push(ScopeID);
				if (Debug) cout << "Starting" << ScopeID << endl;
				return true;
			}
		}
		
		bool endScope()
		{
			N temp;
			temp = currentScope();
			HashTableNode<T, N> *t;

			for (int i = 0;i < 10;i ++)
			{
				t = HTNode[i];
				if (t != NULL)
				{
					while ((t != NULL) && ( t->Scope == temp))
					{
						HTNode[i] = t->next;
						delete t;
						t = HTNode[i];
					}
				}
			}	
			temp = Scope.Pop();
			if (Debug) cout << "ending " <<  temp << endl;
			if (Scope.Value() != "") return true;
			return false;
		}
		
		bool addNode(N varName,T varValue,N iScope = "")
		{
			int i = 0;
			N S;
			S = currentScope();
			if (iScope != "") S = iScope;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			while (t != NULL)
			{
				if ((t->varName == varName) && ( t->Scope == S )) return false;
				t = t->next;
			}

			t = new HashTableNode<T, N>;
			t->varValue = varValue;
			t->varName = varName;
			t->Scope = S;
			t->next = HTNode[i];
			t->alias = "";
			HTNode[i] = t;
			
			return true;
		}

		bool addAlias(N varName,N AliasName,N iScope = "")
		{			//varName is the pointer AliasName is where it points
			int i = 0;
			N S;
			S = currentScope();
			if (iScope != "") S = iScope;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			while (t != NULL)
			{
				if ((t->varName == varName) && ( t->Scope == S )) return false;
				t = t->next;
			}

			t = new HashTableNode<T, N>;
			t->varName = varName;
			t->Scope = S;
			t->next = HTNode[i];
			t->alias = AliasName;
			HTNode[i] = t;
			
			return true;
		}

		
		bool ChangeNode(N varName,T varValue)
		{
			N S("");
			if (varName.InStr(':') > 0)
			{
				S = Tokenize(varName,":");
				varName.LTrim(':');
			}
			int i = 0;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			if (S != "")
				while (t != NULL)
				{
					if ((t->varName == varName) && (t->Scope == S))
					{
					if (t->alias == "")
						t->varValue = varValue;          
					else 
						ChangeNode(t->alias,varValue);
					return true;
					}
					t = t->next;
				}
			else
				while (t != NULL)
				{
					if (t->varName == varName)
					{
					if (t->alias == "")
						t->varValue = varValue;          
					else 
						ChangeNode(t->alias,varValue);
					return true;
					}
					t = t->next;
				}
			return false;
		}
		
		T Value(N varName)
		{
			N S("");
			if (varName.InStr(':') > 0)
			{
				S = Tokenize(varName,":");
				varName.LTrim(':');
			}
			int i = 0;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			if (S != "")
				while (t != NULL)
				{
					if ((t->varName == varName) && (t->Scope == S))
					{
						if (t->alias == "") return t->varValue;
						else return Value(t->alias);
					}
					t = t->next;
				}
			else
				while (t != NULL)
				{
					if (t->varName == varName)  
					{
						if (t->alias == "") return t->varValue;
						else return Value(t->alias);
					}
					t = t->next;
				}
			return NULL;
		}

		
		bool exists(N varName)
		{
			N S("");
			if (varName.InStr(':') > 0)
			{
				S = Tokenize(varName,":");
				varName.LTrim(':');
			}
			int i = 0;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			while (t != NULL)
			{
				if (t->varName == varName)  return true;
				t = t->next;
			}
			return false;
		}

		bool existsInScope(N varName)
		{
			int i = 0;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			while (t != NULL)
			{
				if ((t->varName == varName) && (t->Scope == currentScope())) return true;
				t = t->next;
			}
			return false;

		}

		T Val(N c)
		{
			if (exists(c))
				return (Value(c));
			else if (isNumber(c)) return c;
			else if (isStringVar(c)) return (c.Trim('\''));
			return cEmpty;
		}
		
		N getScope()
		{
			return Scope.front();
		}

		N FullVarName(N varName)
		{
			if (varName.InStr(':') > 0) return varName;
			int i = 0;
			i = hash(varName);
			HashTableNode<T, N> *t;
			t = HTNode[i];
			while (t != NULL)
			{
				if (t->varName == varName)  return t->Scope + ":" + t->varName ;
				t = t->next;
			}
			return cEmpty;
		}

	private:
		stack<N> Scope;
		N ScopeID ;
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产精品一区二区三区| 不卡的看片网站| 亚洲国产高清aⅴ视频| 欧洲在线/亚洲| 国产精品一区二区在线看| 亚洲一区二区三区影院| 欧美精品一区二区三区蜜桃| 欧美日韩亚洲丝袜制服| 丁香婷婷综合色啪| 麻豆极品一区二区三区| 亚洲愉拍自拍另类高清精品| 国产人妖乱国产精品人妖| 91麻豆精品国产| 91成人网在线| 99热这里都是精品| 国产成人av一区二区| 久久福利资源站| 日日摸夜夜添夜夜添亚洲女人| 中文字幕亚洲在| 久久网站最新地址| 欧美大片顶级少妇| 欧美美女bb生活片| 欧美三级电影在线观看| 91豆麻精品91久久久久久| 成人av电影在线播放| 国产999精品久久久久久| 国产在线播放一区| 国内一区二区在线| 精品一区二区三区免费播放| 日本不卡一区二区| 琪琪久久久久日韩精品| 丝袜亚洲精品中文字幕一区| 午夜亚洲国产au精品一区二区| 一区二区三区四区不卡在线| √…a在线天堂一区| 中文字幕av资源一区| 久久久久99精品一区| 久久精品亚洲精品国产欧美kt∨ | 91黄色小视频| 色哟哟欧美精品| 日本精品裸体写真集在线观看 | 国产一区91精品张津瑜| 国产尤物一区二区| 国产不卡高清在线观看视频| 国产电影精品久久禁18| 国产成人免费av在线| 国产91对白在线观看九色| 国产成人av一区二区三区在线观看| 国产精品1区2区3区| 国产成人av电影在线播放| 国产精品一区二区在线看| 国产精品18久久久| 波多野结衣欧美| 色婷婷亚洲综合| 欧美三区在线视频| 91精品国产色综合久久| 日韩欧美国产综合在线一区二区三区 | 久久久久久影视| 欧美激情资源网| 亚洲欧美另类在线| 亚洲一区二区五区| 日本aⅴ精品一区二区三区| 久久99国产乱子伦精品免费| 国产99久久久精品| 色欧美日韩亚洲| 欧美日韩国产高清一区二区三区 | 国产精品1区2区3区在线观看| 成人在线一区二区三区| 欧美伊人久久久久久久久影院 | 欧美日韩国产高清一区二区三区| 日韩一区二区在线看| 久久久久9999亚洲精品| 亚洲码国产岛国毛片在线| 亚洲高清免费视频| 国内精品久久久久影院薰衣草 | 粉嫩一区二区三区性色av| 色天天综合色天天久久| 精品三级在线看| 亚洲情趣在线观看| 男女男精品视频网| 99久久国产综合精品女不卡| 7799精品视频| 国产欧美日本一区二区三区| 亚洲国产乱码最新视频| 国产在线观看免费一区| 色哟哟精品一区| 久久综合999| 亚洲一二三专区| 国产一区二区不卡在线| 欧美色大人视频| 国产精品视频第一区| 日韩福利视频网| 99热99精品| 欧美成人乱码一区二区三区| 中文字幕一区二区三区色视频| 免费看欧美女人艹b| 日本国产一区二区| 精品乱人伦一区二区三区| 一区二区三区免费| 国产精品69毛片高清亚洲| 欧美日韩一区久久| 中文字幕制服丝袜一区二区三区| 日韩av网站免费在线| 91黄色免费看| 国产精品视频yy9299一区| 麻豆91小视频| 欧美日韩精品一区二区天天拍小说| 国产精品美女久久福利网站| 美女性感视频久久| 欧美三级日本三级少妇99| 亚洲情趣在线观看| 国产成人精品免费| 精品日韩在线观看| 亚洲成人av电影在线| 成人精品鲁一区一区二区| 26uuu欧美| 日本成人在线电影网| 在线观看三级视频欧美| 1区2区3区国产精品| 成人午夜av电影| 国产精品网友自拍| 国产一区啦啦啦在线观看| 91精品婷婷国产综合久久| 午夜精品久久久久久久久久| 欧美色综合天天久久综合精品| 亚洲欧洲综合另类在线| 成人18视频在线播放| 国产女同互慰高潮91漫画| 狠狠色丁香久久婷婷综合丁香| 3d动漫精品啪啪1区2区免费| 午夜精品免费在线| 911精品国产一区二区在线| 亚洲gay无套男同| 欧美三级电影在线看| 性久久久久久久| 欧美日韩免费一区二区三区视频| 亚洲国产成人av好男人在线观看| 欧洲日韩一区二区三区| 亚洲一区二区中文在线| 欧美日韩中字一区| 午夜精品久久久久久久99水蜜桃| 欧美日本不卡视频| 日韩av二区在线播放| 日韩欧美在线123| 久久精品国产第一区二区三区| 欧美成人vr18sexvr| 国内精品久久久久影院薰衣草| 久久久99久久| 高清成人在线观看| 国产精品福利一区| 91福利视频久久久久| 亚洲h在线观看| 精品少妇一区二区三区| 懂色av一区二区夜夜嗨| 亚洲色图在线视频| 欧美日韩亚洲丝袜制服| 免费高清在线视频一区·| 久久久久久久久久久久久女国产乱 | 欧美日韩精品一二三区| 青娱乐精品视频| 久久久国产精华| 91麻豆国产福利在线观看| 亚洲3atv精品一区二区三区| 日韩欧美电影在线| 成人免费毛片a| 亚洲国产精品久久艾草纯爱| 欧美大胆人体bbbb| 成人午夜av影视| 五月天丁香久久| 精品对白一区国产伦| av网站一区二区三区| 香港成人在线视频| 精品福利视频一区二区三区| 91丨九色丨国产丨porny| 婷婷丁香激情综合| 国产区在线观看成人精品 | 日本免费新一区视频| 国产午夜精品久久久久久免费视| 在线区一区二视频| 激情丁香综合五月| 亚洲欧美日韩国产一区二区三区| 欧美一区二区三区人| 99re8在线精品视频免费播放| 午夜影视日本亚洲欧洲精品| 久久久精品蜜桃| 欧美日韩国产在线播放网站| 国产精品自拍一区| 亚洲国产sm捆绑调教视频| 国产亚洲成年网址在线观看| 欧美这里有精品| 国产精品亚洲а∨天堂免在线| 一区二区激情视频| 久久久久久久国产精品影院| 欧美在线你懂的| 粉嫩久久99精品久久久久久夜| 日韩成人av影视| 亚洲天堂2014| 2024国产精品| 欧美久久婷婷综合色| 99久久精品免费看|