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

哈夫曼樹(最優二叉樹)

系統 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條評論
主站蜘蛛池模板: 十大黄色免费网站 | 国产精品麻豆99久久 | 一级特黄aa毛片免费观看 | 国产亚洲精品看片在线观看 | 免费一级毛片视频 | 中文字幕在线二区 | 在线中文字幕亚洲 | 好吊妞欧美视频免费 | 成人网中文字幕色 | 欧美性视频一区二区三区 | 色婷婷精品大全在线视频 | 日韩成人| 中文字幕亚洲欧美 | 不卡国产视频 | 天天射综合网站 | 欧美伦禁片在线播放 | 亚洲一二三 | 久久久久一级片 | 久久99热只有频精品6不卡 | oldwoman中国老女人tv | 久热这里只有精品在线 | 中文字幕免费观看视频 | 日韩国产中文字幕 | 久久er国产精品免费观看2 | 91成人在线免费视频 | 色综合久久久久久久久久久 | 欧美区一区二 | 2021国产精品系列一区二区 | 免费看美女隐私的网站 | 色婷婷亚洲| 91啦丨国产丨 | 99热精品国产三级在线观看 | 国产精品资源网站在线观看 | 欧美在线视频7777kkkk | 国产精品福利视频主播真会玩 | 国产激情久久久久久影院 | 久久精品视频国产 | 欧美大交乱xxxxbbbb | 国产网红福利 | 久久久久欧美精品网站 | 免费国产精品视频 |