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

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

?? hashtable.h

?? 清華大學計算機系數據結構課程教材《數據結構 用面向對象方法和C++描述》(殷人昆主編)的類庫(書中程序的源代碼)
?? H
字號:
//散列表類
#ifndef HASHTABLE_H
#define HASHTABLE_H
#include<iostream>
using namespace std;
const int DefaultSize = 100;
enum KindOfStatus {Active,Empty,Deleted};	//元素分類 (活動/空/刪)
template <class E, class K>
class HashTable {									//散列表類定義
public:
	HashTable(const int d, int sz = DefaultSize); 	//構造函數
	~HashTable() {delete []ht; delete []info;}		//析構函數
	HashTable<E,K>& operator = (const HashTable<E,K>& ht2);
	bool Search(const K k1, E& e1);			//在散列表中搜索k1
	bool Insert(const E& e1);						//在散列表中插入e1
	bool Remove(const K k1, E& e1);					//在散列表中刪除e1
	void makeEmpty();								//置散列表為空
	void show();  //輸出
private:
	int divitor;									//散列函數的除數
	int CurrentSize, TableSize;						//當前桶數及最大桶數
	E *ht;											//散列表存儲數組
	KindOfStatus *info;								//狀態數組
	int FindPos(const K k1) const;					//散列函數:計算初始桶號
	int operator == (E& e1) {return *this == e1;}	//重載函數:元素判等
	int operator != (E& e1) {return *this != e1;}	//重載函數:元素判不等
};

template <class E, class K>
HashTable<E,K>::HashTable(int d, int sz) {			//構造函數
	divitor = d;
	TableSize = sz;  CurrentSize = 0;
	ht = new E[TableSize];
	info = new KindOfStatus[TableSize];
	for (int i = 0; i < TableSize; i++) info[i] = Empty;
};
template <class E, class K>
int HashTable<E,K>::FindPos(const K k1)const {
	//搜索在一個散列表中關鍵碼與k1匹配的元素,搜索成功,則函數返回該元素的位置,
	//否則返回插入點(如果有足夠的空間)	
	int i = k1 % divitor;					//計算初始桶號
	int j = i;								//j是檢測下一空桶下標
	do {
		if (info[j] == Empty || info[j] == Active && ht[j] == k1) return j; 	                                          //找到
		j = (j+1) % TableSize;				//當做循環表處理, 找下一個空桶 
	} while (j != i);
	return j;								//轉一圈回到開始點, 表已滿, 失敗
};
template <class E, class K>
bool HashTable<E,K>::Search(const K k1, E& e1) {
	/*使用線性探查法在散列表ht(每個桶容納一個元素)中搜索k1。如果k1在表中存在, 
	則函數返回true,并用引用參數e1返回找到的元素。如果k1不在表中, 則返回false。*/
	int i = FindPos(k1);  					//搜索
	if (info[i] != Active || ht[i] != k1) return false;
	e1 = ht[i];
	return true;
};
template <class E, class K>
void HashTable<E,K>::makeEmpty() {			//清除散列表
	for (int i = 0; i < TableSize; i++) info[i] = Empty;
	CurrentSize = 0;
};
template <class E, class K>
bool HashTable<E,K>::Insert(const E& e1) {
	//在ht表中搜索e。若找到則不再插入, 若未找到, 但表已滿, 則不再插入, 返回false;
	//若找到位置的標志是Empty或Deleted, 不論表是否已滿, x插入, 返回true。
	E k1 = e1;								//重載函數:抽取關鍵碼
	int i = FindPos(k1);					//用散列函數計算桶號
	if (info[i] != Active) {				//該桶空,存放新元素
		ht[i] = e1;  info[i] = Active;
		CurrentSize++;
		return true;
	}
	if (info[i] == Active && ht[i] == e1)
	{cout << "表中已有此元素,不能插入!"<< endl; return false;}
	cout << "表已滿,不能插入!"<< endl;  return false;
};

template <class E, class K>
bool HashTable<E,K>::Remove(const K k1, E& e1) {
	//在ht表中刪除元素key。若表中找不到k1, 或雖然找到k1, 但它已經邏輯刪除過, 
	//則返回false,否則在表中刪除元素k1, 返回true, 并在引用參數e1中得到它。
	int i = FindPos(k1);
	if (info[i] == Active) {				//找到要刪元素, 且是活動元素
		info[i] = Deleted;  CurrentSize--; 	//做邏輯刪除標志, 并不真正物理刪除
		return true;					  	//刪除操作完成, 返回成功標志
	}
	else return false;					  	//表中無被刪元素, 返回不成功標志
};


template <class E, class K>
void HashTable<E,K>::show()
{
	for(int i = 0; i<TableSize; i++)
	{
		if(info[i] == Active)
			cout<<"表元素 "<<i<<"  "<<ht[i]<<endl;
		else if (info[i] == Empty)
			cout<<"表元素 "<<i<<"  為空"<<endl;
		else if (info[i] == Deleted)
			cout<<"表元素 "<<i<<"  被刪"<<endl;
	}
}
#endif;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠色狠狠综合| 成人国产在线观看| 亚洲午夜一二三区视频| 国产精品二三区| 国产精品网站在线播放| 国产目拍亚洲精品99久久精品| 欧美zozo另类异族| 日韩免费高清av| www国产成人| 国产无人区一区二区三区| 国产日韩欧美精品综合| 国产欧美日韩精品在线| 国产精品二三区| 亚洲一区二区三区视频在线| 亚洲成人在线观看视频| 日本免费在线视频不卡一不卡二| 美日韩一级片在线观看| 国产最新精品免费| 不卡一卡二卡三乱码免费网站| www.亚洲激情.com| 欧美在线小视频| 精品免费国产一区二区三区四区| 久久久一区二区| 亚洲精品乱码久久久久久久久| 亚洲主播在线播放| 精品午夜久久福利影院| 粉嫩欧美一区二区三区高清影视| 色综合久久久久综合体桃花网| 欧美日韩成人在线一区| 久久精品一区二区三区不卡牛牛| 国产精品久久久久影院| 香蕉影视欧美成人| 国产精品一区二区你懂的| 99re66热这里只有精品3直播 | 国产精品的网站| 一区二区免费在线播放| 韩国成人精品a∨在线观看| 99精品欧美一区| 欧美一级久久久| 亚洲欧美综合网| 蜜乳av一区二区| 色激情天天射综合网| 久久一夜天堂av一区二区三区| 亚洲精品国产成人久久av盗摄| 老鸭窝一区二区久久精品| 91麻豆国产福利在线观看| 精品久久久久久久久久久久久久久久久 | 欧美一区二区三区视频免费| 国产女人18毛片水真多成人如厕 | 亚洲成a人v欧美综合天堂下载| 日本免费在线视频不卡一不卡二 | 色噜噜狠狠成人网p站| 欧美一区二区三区免费视频 | 一区二区三区日韩欧美精品| 久久精品国产**网站演员| 99re免费视频精品全部| 日韩一卡二卡三卡国产欧美| 亚洲色图色小说| 国产成人精品一区二| 欧美老年两性高潮| 亚洲女人小视频在线观看| 国产精品99久久久久久有的能看| 69成人精品免费视频| 一区二区三区日韩精品视频| 不卡的av电影在线观看| 国产无一区二区| 国产成人午夜视频| 久久中文字幕电影| 精品一区二区三区不卡| 日韩欧美123| 美国毛片一区二区| 日韩欧美一级二级| 奇米精品一区二区三区在线观看| 欧美欧美午夜aⅴ在线观看| 亚洲自拍偷拍九九九| 在线视频一区二区三区| 一区二区三区四区不卡在线| av电影在线观看一区| 国产精品久99| 91香蕉视频污在线| 亚洲精品国产一区二区精华液| 91蜜桃在线免费视频| 亚洲免费三区一区二区| 色综合欧美在线视频区| 亚洲综合精品自拍| 91精品福利在线一区二区三区 | 国产一区二区三区在线观看精品 | 国产精品高潮呻吟| 色婷婷精品久久二区二区蜜臂av| 亚洲乱码国产乱码精品精小说| 色噜噜狠狠一区二区三区果冻| 亚洲国产欧美另类丝袜| 在线不卡一区二区| 国内精品国产成人国产三级粉色 | 日韩福利视频网| 日韩午夜电影在线观看| 国内精品视频一区二区三区八戒| 久久精品一区二区三区不卡| 97久久人人超碰| 丝袜国产日韩另类美女| 久久九九久久九九| 在线看不卡av| 国产最新精品精品你懂的| 国产欧美日韩三级| 欧美亚洲高清一区二区三区不卡| 日韩av网站在线观看| 久久久久久久久99精品| 色香蕉成人二区免费| 美洲天堂一区二卡三卡四卡视频| 国产欧美一区二区三区鸳鸯浴| 色综合一个色综合亚洲| 日韩av在线免费观看不卡| 久久久久九九视频| 欧美挠脚心视频网站| 国产精品一区二区久久精品爱涩| 亚洲精品乱码久久久久久久久 | 欧美久久久一区| 国产精品91一区二区| 亚洲成av人**亚洲成av**| 26uuu欧美| 欧美亚洲动漫另类| 国产成人精品免费一区二区| 亚洲a一区二区| 国产精品伦一区二区三级视频| 欧美老肥妇做.爰bbww| 成人av手机在线观看| 捆绑调教美女网站视频一区| 亚洲精品视频在线观看免费| 久久综合久久久久88| 欧美肥胖老妇做爰| 色综合久久久网| 成人免费看片app下载| 久久99久久99精品免视看婷婷| 一区二区三区精品视频| 国产精品三级电影| 26uuu精品一区二区在线观看| 欧美卡1卡2卡| 欧美日韩亚洲综合| 色婷婷综合久久久中文字幕| 成人免费视频播放| 国产一区二区毛片| 久久成人18免费观看| 日韩电影在线一区| 午夜久久久久久久久久一区二区| 亚洲三级理论片| ...中文天堂在线一区| 欧美国产精品一区二区三区| 久久这里只精品最新地址| 日韩一区二区在线播放| 欧美一级黄色大片| 日韩午夜在线观看视频| 日韩午夜激情电影| 欧美xxxxxxxx| 久久只精品国产| 久久无码av三级| 日本一区二区三区电影| 欧美高清在线一区| 亚洲欧洲另类国产综合| 日韩毛片精品高清免费| 一级女性全黄久久生活片免费| 一区二区三区四区乱视频| 亚洲成人福利片| 水野朝阳av一区二区三区| 日本人妖一区二区| 久久99久国产精品黄毛片色诱| 国产精品综合av一区二区国产馆| 韩国av一区二区三区四区| 懂色av中文字幕一区二区三区| 成人动漫视频在线| 色老头久久综合| 3atv在线一区二区三区| 精品国产凹凸成av人网站| 国产亚洲综合色| 中文字幕亚洲区| 婷婷中文字幕一区三区| 久久91精品国产91久久小草| 国产91在线|亚洲| 日本精品视频一区二区三区| 欧美日本韩国一区二区三区视频| 日韩亚洲电影在线| 中文字幕一区二区三区不卡在线| 亚洲综合视频在线| 久久国产精品免费| 99久久久久久| 日韩午夜三级在线| 综合久久国产九一剧情麻豆| 亚洲成年人影院| 国产一区二区主播在线| 色婷婷久久一区二区三区麻豆| 欧美日本韩国一区二区三区视频| 久久中文娱乐网| 亚洲无人区一区| 国产不卡在线一区| 91精品国产色综合久久不卡蜜臀| 久久日韩粉嫩一区二区三区 | 911精品产国品一二三产区| 久久精品视频一区二区三区| 依依成人精品视频| 国产大陆亚洲精品国产| 欧美日韩成人综合天天影院|