我的大學之資料結構NO 5

2021-09-26 21:50:20 字數 785 閱讀 6819

哈夫曼編碼

一、需求分析

從終端讀入字符集大小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 基本操作 程式執行後,首先要求使用者指定初始...