-
【問題描述】
設(shè)計一個利用哈夫曼算法的編碼和譯碼系統(tǒng),重復(fù)地顯示并處理以下項目,直到選擇退出為止。
【基本要求】
(1)初始化:鍵盤輸入字符集大小n、n個字符和n個權(quán)值,建立哈夫曼樹;
(2)編碼:利用建好的哈夫曼樹生成哈夫曼編碼;
(3)輸出編碼;
(4)設(shè)字符集及頻度如下表:
字符:A B C D E F
頻度:4 9 23 2 17 15
字符:G H I J K
頻度:1 2 3 3 4
標(biāo)簽:
哈夫曼算法
編碼
譯碼
上傳時間:
2017-03-07
上傳用戶:qwe1234
-
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "DrawArea", NULL, 0,
&argc, argv, NULL, NULL]
//建立drawarea
n = 0
XtSetArg[args[n], XmNwidth, 500 ] n++
XtSetArg[args[n], XmNheight, 500 ] n++
drawarea = XmCreateDrawingArea[toplevel, "drawarea", args, n]
XtManageChild[drawarea]
//建立繪圖所用的GC
prepare[]
標(biāo)簽:
NULL
XtVaAppInitialize
toplevel
DrawArea
上傳時間:
2013-12-29
上傳用戶:a6697238
-
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "Frame", NULL, 0,
&argc, argv, NULL, NULL]
//建立Frame組件
n = 0
XtSetArg[args[n], XmNshadowType, XmSHADOW_ETCHED_IN] n++
XtSetArg[args[n], XmNshadowThickness, 4] n++
frame = XmCreateFrame[toplevel, "frame", args, n]
XtManageChild[frame]
標(biāo)簽:
NULL
XtVaAppInitialize
toplevel
Frame
上傳時間:
2013-12-08
上傳用戶:hasan2015
-
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "Label", NULL, 0,
&argc, argv, NULL, NULL]
//建立按鈕上標(biāo)簽的字符串
str = XmStringCreateLtoR["A Simple\n Label",
XmFONTLIST_DEFAULT_TAG]
n = 0
XtSetArg[args[n], XmNlabelString, str] n++
label = XmCreateLabel[toplevel, "pushbutton", args, n]
XtManageChild[label]
XmStringFree[str]
//顯示窗口
XtRealizeWidget[toplevel]
//進(jìn)入事件循環(huán)
XtAppMainLoop[app]
標(biāo)簽:
NULL
XtVaAppInitialize
toplevel
Label
上傳時間:
2014-01-11
上傳用戶:bruce5996
-
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "List", NULL, 0,
&argc, argv, NULL, NULL]
//建立列表上的復(fù)合字符串
for[i=0 i<12 i++]
str_months[i] = XmStringCreateSimple[months[i]]
//建立列表
n = 0
XtSetArg[args[n], XmNitems, str_months] n++
XtSetArg[args[n], XmNitemCount, 12] n++
XtSetArg[args[n], XmNvisibleItemCount, 8] n++
//XtSetArg[args[n], XmNscrollBarDisplayPolicy, XmSTATIC] n++
//XtSetArg[args[n], XmNlistSizePolicy, XmCONSTANT] n++
XtSetArg[args[n], XmNselectionPolicy, XmEXTENDED_SELECT] n++
list = XmCreateScrolledList[toplevel, "list", args, n]
XtManageChild[list]
for[i=0 i<12 i++]
XmStringFree[str_months[i]]
//顯示窗口
XtRealizeWidget[toplevel]
//進(jìn)入事件循環(huán)
XtAppMainLoop[app]
標(biāo)簽:
NULL
XtVaAppInitialize
toplevel
List
上傳時間:
2013-12-21
上傳用戶:asdkin
-
setlocale[LC_ALL, ""]
XtSetLanguageProc[NULL, NULL, NULL]
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "SpinBox", NULL, 0,
&argc, argv, NULL, NULL]
//建立SpinBox
n = 0
XtSetArg[args[n], XmNwidth, 400 ] n++
XtSetArg[args[n], XmNheight, 100 ] n++
//XtSetArg[args[n], XmNarrowLayout, XmARROWS_FLAT_END] n++
XtSetArg[args[n], XmNrepeatDelay, 0] n++
//XtSetArg[args[n], XmNarrowOrientation, XmHORIZONTAL] n++
spinbox = XmCreateSpinBox[toplevel, "SpinBox", args, n]
XtManageChild[spinbox]
XtAddCallback [spinbox, XmNvalueChangedCallback,
[XtCallbackProc]ValueChanged, [XtPointer]NULL]
XtAddCallback [spinbox, XmNmodifyVerifyCallback,
[XtCallbackProc]ModifyVerify, [XtPointer]NULL]
標(biāo)簽:
NULL
XtSetLanguageProc
setlocale
toplevel
上傳時間:
2017-03-25
上傳用戶:lmeeworm
-
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "Scroll", NULL, 0,
&argc, argv, NULL, NULL]
//建立SpinBox
n = 0
XtSetArg[args[n], XmNwidth, 400 ] n++
XtSetArg[args[n], XmNheight, 100 ] n++
//XtSetArg[args[n], XmNarrowLayout, XmARROWS_FLAT_END] n++
XtSetArg[args[n], XmNrepeatDelay, 0] n++
//XtSetArg[args[n], XmNarrowOrientation, XmHORIZONTAL] n++
spinbox = XmCreateSpinBox[toplevel, "SpinBox", args, n]
XtManageChild[spinbox]
XtAddCallback [spinbox, XmNvalueChangedCallback,
[XtCallbackProc]ValueChanged, [XtPointer]NULL]
XtAddCallback [spinbox, XmNmodifyVerifyCallback,
[XtCallbackProc]ModifyVerify, [XtPointer]NULL]
標(biāo)簽:
NULL
XtVaAppInitialize
toplevel
Scroll
上傳時間:
2013-12-26
上傳用戶:fxf126@126.com
-
課程設(shè)計:
1.求出在一個n×n的棋盤上,放置n個不能互相捕捉的國際象棋“皇后”的所有布局。
2.設(shè)計一個利用哈夫曼算法的編碼和譯碼系統(tǒng),重復(fù)地顯示并處理以下項目,直到選擇退出為止。
【基本要求】
1) 將權(quán)值數(shù)據(jù)存放在數(shù)據(jù)文件(文件名為data.txt,位于執(zhí)行程序的當(dāng)前目錄中)
2) 分別采用動態(tài)和靜態(tài)存儲結(jié)構(gòu)
3) 初始化:鍵盤輸入字符集大小n、n個字符和n個權(quán)值,建立哈夫曼樹;
4) 編碼:利用建好的哈夫曼樹生成哈夫曼編碼;
5) 輸出編碼;
6) 設(shè)字符集及頻度如下表:
字符 空格 A B C D E F G H I J K L M
頻度 186 64 13 22 32 103 21 15 47 57 1 5 32 20
字符 N O P Q R S T U V W X Y Z
頻度 57 63 15 1 48 51 80 23 8 18 1 16 1
標(biāo)簽:
上傳時間:
2017-04-24
上傳用戶:zhyiroy
-
常見的實現(xiàn)方法是使用兩個數(shù)組,
t[n-1]和e[n],數(shù)組e存放所有的參加排序的元素,在完全二叉樹中是葉子結(jié)點,t[]存放
的是比賽的階段性勝者的編號,再進(jìn)行n趟比賽排序結(jié)束,時間復(fù)雜度是O(n*log2(n)),
其實我覺得也可以只通過一個數(shù)組A[2*n-1]也可以實現(xiàn),只是標(biāo)號的換算有點復(fù)雜而已.
標(biāo)簽:
實現(xiàn)方法
數(shù)組
上傳時間:
2017-05-02
上傳用戶:dragonhaixm
-
最小生成樹 MST的四種算法實現(xiàn)。
包括普通的Kruskal算法和Prim算法,用Disjoint-Set優(yōu)化的Kruskal算法和用Heap優(yōu)化的堆算法。
復(fù)雜度分別為O(mn), O(n^2), O(m log n), O(m log n)
標(biāo)簽:
Kruskal
Prim
算法
MST
上傳時間:
2013-12-10
上傳用戶:stewart·