亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

哈夫曼樹(最優二叉樹)

系統 1880 0

....差點忘記寫博客了...

?

?

哈夫曼樹 .. 其實就是只利用葉子結點來存儲要用信息的樹,只不過它在構造的時候就擁有了一個迷人的特性... 就是WPL(帶權路徑長度)是最小的.. 而且還能用這個樹的來為葉子結點中的信息進行編碼, 得出來的各個編碼一定不會相同,并且不會產生混淆的情況..

?

通過哈夫曼樹的特點.實現了根據一個隊列來創建一棵哈夫曼樹的方法.

    /**
	 * 得到隨機產生的隊列
	 */
	public void setQueue() {
		Random rd = new Random();
		System.out.println("隨機產生的隊列為:");
		for (int i = 0; i < 10; i++) {
			int k = rd.nextInt(20);
			TreeNode tn = new TreeNode(k);
			queue.add(tn);
			System.out.print(k + " ");
		}
		System.out.println();
	}

	// 得到隊列
	public PriorityQueue<TreeNode> getQueue() {
		return queue;
	}

	// 建樹,while (queue.size()>=2)
	public TreeNode CreatTree(PriorityQueue<TreeNode> queue) {
		TreeNode lc = queue.poll();
		TreeNode rc = queue.poll();
		// 兩個最小的結點通過這個結點連接起來
		TreeNode tr = new TreeNode((Integer) lc.getData()
				+ (Integer) rc.getData());
		tr.setLchild(lc);
		tr.setRchild(rc);
		lc.setParent(tr);
		rc.setParent(tr);
		// 將其父結點放入隊列.
		queue.add(tr);
		return tr;// 將根結點返回.當返回到最后一個根結點時就構成了一棵樹
	}

  

?到此.. 哈夫曼樹就建成了. 接下來就是哈夫曼編碼了.這個的實現我用到了遞歸,并且是每個葉結點往回找

?

    /**
	 * 為每個葉結點編碼,返回字符串
	 * 
	 * @param leaf每次傳入一個葉結點
	 * @return以字符串形式返回每個葉結點的哈夫曼編碼
	 */
	public String ToCode(TreeNode leaf) {
		String s = "";
		// 葉結點存在雙親結點.
		if (leaf.getParent() != null) {
			if (leaf.getParent().getLchild() == leaf) {
				// 向父結點遞歸
				s = ToCode(leaf.getParent()) + 0;
				return s;// 葉結點為左孩子時,在遞歸得到的編碼后面加個0;
			} else if (leaf.getParent().getRchild() == leaf) {
				// 向父結點遞歸
				s = ToCode(leaf.getParent()) + 1;
				return s;// 葉結點為右孩子時,在遞歸得到的編碼后面加個1;
			}
		}
		return s;
	}
  

?

?通過這個方法.. 實現對哈夫曼樹中葉子結點進行哈夫曼編碼的
哈夫曼樹(最優二叉樹)

?

?

?

補充個.. 今天讀取文件中的字節時..發現0出現的次數是最多的 ... 讀了個162M的文件..?0的個數比其他的數出現的次數多了10萬次 ....
?

哈夫曼樹(最優二叉樹)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品免费全国观看国产 | 天天插天天射天天干 | 日本高清中文字幕一区二区三区a | 一区二区视频在线观看 | 91在线欧美 | 91在线视频网址 | 亚洲欧美日韩国产专区一区 | 久久精品视频网 | 五月天久久婷婷 | 91视频香蕉 | 一级毛片a女人刺激视频免费 | 可以免费观看的毛片 | 久草小区二区三区四区网页 | 99re热视频在线 | 亚洲精品国产精品精 | 亚洲qingse中文字幕久久 | 日日干日日草 | 日日摸夜夜添夜夜添人人爽 | 中文字幕不卡在线播放 | 国产精品400部自产在线观看 | 狼人伊人干 | 免费看国产精品久久久久 | 亚洲综合日韩精品欧美综合区 | 九九视频在线观看6 | 97视频在线观看免费视频 | 被公侵犯肉体中文字幕一区二区 | 日韩有码在线播放 | 国产高清一区二区三区视频 | 久久中文视频 | 久久香蕉国产线看观看乱码 | 亚洲国产成人久久精品动漫 | 久久99网站| 色在线播放 | 日本精品一区二区三本中文 | 中国免费一级毛片 | 欧美色综合 | 老子影院午夜伦手机不四虎 | 欧美日韩精品高清一区二区 | 亚洲精品久久成人福利 | 国产一区福利 | 99久久免费国产特黄 |