哈夫曼編碼
一、需求分析
從終端讀入字符集大小n,依次輸入n個字元和相應的權值,建立哈夫曼樹。
輸入一串電文,程式顯示出電文翻譯的位元流,在輸入一串位元流,程式顯示位元流翻譯的電文。
二、部分**
1.建立結構體
typedef structhtelemtype;
typedef structhtree;
struct sqstack;
2.建立哈夫曼樹
void createhtree(htree &htree,int n)
//構造哈夫曼樹
for(int j=n;j<(2*n-1);j++)//兩個權重合併增加的結點
htree.root=htree.nodes-1; //
return; }
3.選擇權重最小的哈夫曼樹
void select(int index,htree htree,int &s1)
while(s.top!=0)
cout<**說明:如果位元流為0,則找哈夫曼樹的左孩子,為1找哈夫曼樹的右孩子,直到最後乙個結點為空指標,輸出乙個電文,若m不為0,迴圈上面的步驟。
6.進棧函式
bool push(sqstack &s,char e)//壓棧函式
7.出棧函式
bool pop(sqstack &s,char &e)//出棧函式
資料結構之單鏈表No 5
package main import fmt 定義乙個 heronode type heronode struct 給鍊錶插入乙個結點 根據 no 的編號從小到大插入.實用 func insertheronode head heronode,newheronode heronode else if...
Python各種資料結構的迴圈No 5
coding utf 8 列表 可以對元素增刪改查 list1 google runoob 1997,2000 list2 1,2,3,4,5,6,7 print list1 0 list1 0 print list2 1 5 list2 1 5 列表迴圈 results yuyu 26 1111 ...
我的大學之資料結構NO 2
約瑟夫環 一 需求分析 1 實現功能 利用單向迴圈鍊錶儲存結構模擬此過程,按照出列順序輸出每人的編號。2 測試資料 初始密碼m 20 人數n 7。這7個人的密碼依次為 3,1,7,2,4,8,4。這組資料的正確出列順序應該是6,1,4,7,2,3,5。3 基本操作 程式執行後,首先要求使用者指定初始...