数据结构问题C语言的 数据结构中C语言的一些问题

C\u8bed\u8a00\u6570\u636e\u7ed3\u6784\u95ee\u9898

\u5b9a\u4e49\u548c\u58f0\u660e\u4e0d\u5339\u914d\uff0c\u4f1a\u5bfc\u81f4\u7f16\u8bd1\u5668\u7f16\u8bd1\u7684\u65f6\u5019\u68c0\u67e5\u7c7b\u578b\u9519\u8bef\uff0c\u4ece\u800c\u5bfc\u81f4\u8fd0\u884c\u4e0d\u53ef\u9884\u671f\u540e\u679c
\u4f60\u8fd9\u4e2a\u4f8b\u5b50\uff0c\u5f62\u53c2\u8981\u6c42\u662f\u6307\u9488
\u4f46\u662f\u58f0\u660e\u4e3a\u975e\u6307\u9488\uff0c\u8fd9\u6837\u5982\u679c\u4f60\u6309\u6307\u9488\u4f20\u5b9e\u53c2\uff0c\u7f16\u8bd1\u5c31\u4f1a\u62a5\u9519
\u6309\u7167\u975e\u6307\u9488\u4f20\u503c\uff0c\u90a3\u4e48\u5728\u51fd\u6570\u5185\u90e8\u5bf9*taller\u8d4b\u503c\u5c31\u4f1a\u5f15\u8d77\u5d29\u6e83
\u603b\u4e4b\u4f1a\u51fa\u95ee\u9898

s\u548cr\u90fd\u662f\u8282\u70b9\u7684\u6307\u9488
\u8fd9\u662f\u6700\u7b80\u5355\u7684\u94fe\u8868\u8282\u70b9 \u4e00\u4e2a\u8282\u70b9\u7531\u4e24\u90e8\u5206\u7ec4\u6210 char data \u548c node *next
next\u4e5f\u662f\u6307\u9488
\u8fd9\u4e2a\u7b97\u6cd5\u662f\u9ed8\u8ba4\u6709\u4e00\u4e2a\u521d\u59cb\u5934\u8282\u70b9\u7684\uff0c\u7531r\u6307\u5411\u3002\u56e0\u4e3a\u53ea\u6709\u4e00\u4e2a\u8282\u70b9 \u6240\u4ee5\u81ea\u5df1\u4e5f\u662f\u5c3e\u8282\u70b9\uff0cr\u6307\u5411\u5b83\u6ca1\u6bdb\u75c5\u3002 \u6b64\u65f6r->next =null \u4f60\u4e0d\u7528\u5173\u5fc3\u5934\u8282\u70b9\u7684data\u662f\u4ec0\u4e48
\u7136\u540e\u5f00\u59cb\u5faa\u73af\uff0c\u7ed9s\u7533\u8bf7\u4e00\u4e2a\u65b0\u7684node\u8282\u70b9\u7a7a\u95f4\uff0c\u6b64\u65f6s\u6307\u5411\u8fd9\u4e2a\u65b0\u8282\u70b9\uff0c\u7136\u540e\u901a\u8fc7s\u7ed9\u8fd9\u4e2a\u8282\u70b9\u7684data\u8d4b\u503c\u3002
\u4f46\u662f\uff0c\u8fd9\u4e2a\u8282\u70b9\u8ddf\u94fe\u8868\u662f\u6ca1\u6709\u4efb\u4f55\u5173\u7cfb\u7684\uff0c\u6240\u4ee5\u6211\u4eec\u8981\u628a\u8fd9\u4e2a\u8282\u70b9\u52a0\u5230\u94fe\u8868\u540e\u9762\u3002
\u6b64\u65f6\u94fe\u8868\u5c31\u4e00\u4e2a\u8282\u70b9(r\u59cb\u7ec8\u6307\u5411\u5c3e\u8282\u70b9)\uff0c\u6240\u4ee5r->next=s \u4e24\u4e2a\u8282\u70b9\u94fe\u63a5\u5230\u4e86\u4e00\u8d77
\u7136\u540e\u518d\u91cd\u8981\u7684\u4e8b\u60c5\u518d\u8bf4\u4e00\u904d\uff0cr\u59cb\u7ec8\u6307\u5411\u5c3e\u8282\u70b9\uff0c\u4e0d\u7136\u4e0b\u4e00\u4e2a\u8282\u70b9\u600e\u4e48\u52a0\u5230\u5c3e\u90e8
\u4f60\u56de\u53bb\u68c0\u67e5\u4e0b\u53d1\u73b0\uff0cs\u8fd8\u662f\u539f\u6765\u90a3\u4e2a\u503c\uff0c\u65b0\u7533\u8bf7\u7684\u8282\u70b9\u6b64\u65f6\u6709\u4e24\u4e2a\u6307\u9488\u6307\u5411\uff0c \u4e00\u4e2a\u662fr->next
\u53e6\u4e00\u4e2a\u662fs
\u6240\u4ee5\u8ba9r=s \u73b0\u5728r\u4e5f\u6307\u5411\u8fd9\u4e2a\u8282\u70b9\u4e86\uff0cs\u53ef\u4ee5\u7a7a\u95f2\u51fa\u6765\u8fdb\u884c\u4e0b\u4e00\u4e2a\u8282\u70b9\u7684\u7533\u8bf7\u4e86

权值升序排列,下同
=>2 3 5 7 8 10 15 20 30
1.最小的两个权值2,3组一棵树,根节点权值为2+3=5
=>5* 5 7 8 10 15 20 30
2.最小的两个权值5,5组一棵树,根节点权值为5+5=10
=>7 8 10* 10 15 20 30
3.最小的两个权值7,8组一棵树,根节点权值为7+8=15
=>10* 10 15* 15 20 30
4.最小的两个权值10*,10组一棵树,根节点权值为10+10=20
=>15* 15 20* 20 30
5.最小的两个权值15*,15组一棵树,根节点权值为15+15=30
=>20* 20 30* 30
6.最小的两个权值20*,20组一棵树,根节点权值为20+20=40
=>30* 30 40*
7.最小的两个权值30*,30组一棵树,根节点权值为30+30=60
=>40* 60*
7.最小的两个权值40*,60*组一棵树,根节点权值为40+60=100
=>100* (一棵树,编码完成)
________/\
_______/__\
______/____\
_____/\_____/\
____/\_20__/\_30
___/\_10__/\_15
__/\_5___7_8
_2_3

WPL
=(W1*L1+W2*L2+W3*L3+...+Wn*Ln)
=2*5+3*5+5*4+7*4+8*4+10*3+15*3+20*2+30*2
=280

左孩子前进0,右孩子前进1
A:001
B:01
C:0001
D:101
E:1001
F:00000
G:00001
H:1000
I:11

根据题中数据使用频率,采用哈弗曼编码,构成的二叉树如下:
哈弗曼编码思想核心就是将使用频率越高的数据编码长度越短,是一种变长(即各字符码值长度不一定相等)编码方式。构造平均长度最短的编码。
_________________100
________________/____\
______________40______60
_____________/__\____/__\
________ (B)20___20__30___30___(左侧30也即叶子结点的是I)
_______________/__\_____/__\
__________(A)10___10___15___15___(左侧15是D)
_________________/__\______/__\
_____________(C)5___5_____7(H)_8(E)
___________________/__\
_______________(F)2____3(G)
根节点编码为1;将树中左孩子结点编码为0,右孩子结点编码为1,依次编码直至到叶结点。
则各字符编码值分别为:
B:100
I:110
A:1010
D:1110
C:10110
H:11110
E:11111
F:101110
G:101111
树的带全路径长度(等于各叶节点的带权路径长度之和):
=(2+3)x5+(7+8+5)x4+(15+10)x3+(20+30)x2
=25+80+75+100
=280

树我学过,但学不好,现在重新学,抱歉,目前帮不了你

我知道你不是神

  • 鏁版嵁缁撴瀯闂:鍦ㄦ爤椤舵寚閽堜负top鐨勯摼鏍堜腑,璁$畻璇ラ摼鏍堜腑缁撶偣鐨勪釜鏁,鐢–璇...
    绛旓細鍙互杩欎箞璁炬爤鐨缁撴瀯浣 struct stack { int data;stack *down;};鐒跺悗 stack *top = new stack;top->down = NULL;缁欏嚭push鐨勭紪娉 void push( int n,stack *top ){ stack *p = new stack;p->data = n;p->down = top;top = p;} 鐒跺悗缁忚繃push锛屽鏋滆璁$畻缁撶偣涓暟锛屽彲浠ヨ繖鏍风紪銆俰nt ...
  • 鏁版嵁缁撴瀯c 璇█鐗堥鐩,姹備唬鐮!!! 璇蜂竴瀹氱敤C璇█,姹傚ぇ绁炲府蹇
    绛旓細濡傚浘 婧愪唬鐮:/*灏廘灞呬綇鐨勫湴鏂规湁寰堝鍩庡競...浣滆:q839219286绠楁硶鎬濇兂锛氬煄甯傚浘閲囩敤DFS鎼滅储锛屾悳绱㈢粓姝㈡潯浠舵槸锛氬埌杈剧粓鐐规垨 Vmax-Vmin锛瀌V璁 dV=Vmax-Vmin锛屾眰dV鐨勬柟娉曟槸鍒╃敤 Vmax銆乂min鐨勯掑綊鍘嗗彶璁板綍鍥缁撴瀯閲囩敤鈥滈偦鎺ヨ〃鈥濇硶锛屽瓨鍌ㄧ粨鏋勯噰鐢ㄦ暟缁勩*///C璇█鐗#include<stdio.h>#include<stdlib.h>#...
  • C璇█鏁版嵁缁撴瀯鐨涓涓熀鏈闂
    绛旓細1 int read_2D_Array(int **array, int i, int j, int column)2 { //i row j column 锛屾昏鏁颁负column 3 return((*(int*)array + i*column + j));4 } 浠ヤ笂鍑芥暟鐨勫弬鏁扮涓琛岀殑int **array鏄嚱鏁板弬鏁拌繖涓弬鏁拌鏄庤鍑芥暟鍙傛暟鍒楄〃涓鎺ユ敹鐨鏁版嵁绫诲瀷涓篿nt ** 鍨嬬殑鍙橀噺 ...
  • 鐢c璇█鎻忚堪鏁版嵁缁撴瀯鐨勯棶棰
    绛旓細typedef int datatype:鎰忔濇槸鐢╠atatype杩欎釜瀛楃涓诧紝瀹炵幇int鐨勫姛鑳斤紝姣斿鍦ㄥ仛杩欒瀹氫箟涔嬪悗锛屽畾涔変竴涓暣褰㈠彉閲廰锛屽氨鍙互鍐欐垚datatype a锛屾晥鏋滃拰int a涓鏍凤紱typedef struct node锛氳窡涓婇潰涓鏍凤紝鍙互鐢ㄢ渓inklist鈥濊繖涓瓧绗︿覆澹版槑涓涓缁撴瀯浣擄紝缁撴瀯浣撶殑褰㈠紡锛屾寜鐓т笂闈 struct node { datatype data;struct ...
  • c璇█鐨勬暟鎹粨鏋鐨勫瓨鍌 闂...
    绛旓細棣栧厛璇翠笅锛屼綘鐨勭▼搴忓畾涔変簡2涓猅锛屾槸閲嶅瀹氫箟锛岀紪璇戜笉鑳介氳繃鐨勶紝鎶婂叡鐢ㄤ綋鍚嶅畾涔夋垚鍏跺畠鐨勶紙渚嬪T2锛夋帴涓嬫潵璇磋鍏辩敤浣撶被鍨嬶細鍏辩敤浣撶被鍨嬪拰缁撴瀯浣撶被浼硷紝閮芥槸鐢变笉鍚岀殑鏁版嵁绫诲瀷鎵缁勬垚鐨勶紝鍖哄埆鏄粨鏋勪綋绫诲瀷鐨勫彉閲忔槸鍒嗗埆瀛樻斁鐨勶紝鑰屽叡鐢ㄤ綋绫诲瀷鐨勫彉閲忔槸瀛樻斁鍦ㄥ悓涓娈靛唴瀛樼┖闂寸殑銆傝繖娈靛唴瀛樼┖闂寸殑澶у皬鐢卞叡鐢ㄤ綋涓垚鍛樼殑...
  • c璇█鐗 鏁版嵁缁撴瀯闂
    绛旓細1.鎵惧埌缁撴瀯鐨澶(H)鍜屽熬(R)2.涓嬮潰鏄吉浠g爜 while(H鍦≧涔嬪墠) do begin if data_at[H]!=data_at[R] then return false;//鑲畾涓嶅绉 H<-鍚庣户;R<-鍓嶉┍;end;return true;鏃堕棿澶嶆潅搴(strlen(s))鏃负琛ㄩ暱
  • c璇█鏁版嵁缁撴瀯(鑰冮,娴嬭瘯浣犵殑鑳藉姏)--缂栧啓婧愪唬鐮
    绛旓細c璇█鏁版嵁缁撴瀯(鑰冮,娴嬭瘯浣犵殑鑳藉姏)--缂栧啓婧愪唬鐮 涓銆傛瀯閫犲姩鎬佸垎閰嶉『搴忓瓨鍌ㄧ殑绾挎ц〃,骞跺湪鍏朵笂瀹炵幇浠ヤ笅鎿嶄綔:1.ListInsert(&L,i,e)鍦↙涓i涓綅缃墠鎻掑叆e2.ListDelete(&L,i,&e)鍒犻櫎L涓殑绗琲涓厓绱,鐢╡杩斿洖鍏跺笺3.PrintList(L)杈撳嚭绾... 涓銆傛瀯閫犲姩鎬佸垎閰嶉『搴忓瓨鍌ㄧ殑绾挎ц〃,骞跺湪鍏朵笂瀹炵幇浠ヤ笅鎿嶄綔:1....
  • C璇█鏁版嵁缁撴瀯闂
    绛旓細/* 杩欐槸涓涓吀鍨嬬殑鍗曢摼琛鏁版嵁缁撴瀯闂銆備笅闈㈢敤鍗曢摼琛ㄦ柟寮忓姞浠ヨ鏄庛傞鍏堬紝姝g‘瀹氫箟涓涓崟閾捐〃缁撴瀯锛涘叾娆★紝鍒濆鍖栧崟閾捐〃锛屽叾涓寘鎷袱涓楠わ紝绗竴鏄垎閰嶅崟閾捐〃绌洪棿锛岀浜屾槸缁欏崟閾捐〃鐨勬瘡涓涓〃椤硅祴鍒濆硷紱鍐嶆锛屾牴鎹緭鍏ョ殑i鍜宬璋冪敤鍒犻櫎绠楁硶锛涙渶鍚庯紝杈撳嚭缁撴灉锛屽苟閲婃斁鍗曢摼琛ㄧ┖闂淬傛敞鎰忥紝浣跨敤杩欎釜鏂规硶鍚庯紝鏈缁...
  • 璺眰鏁版嵁缁撴瀯(c璇█鐗)鐨勫嚑涓闂瑙g瓟
    绛旓細瀹為獙涓 鍗曢摼琛ㄦ湁涓涓ご鑺傜偣h e a d锛屾寚鍚戦摼琛ㄥ湪鍐呭瓨鐨勯鍦板潃銆傞摼琛ㄤ腑鐨勬瘡涓涓妭鐐圭殑鏁版嵁绫诲瀷涓缁撴瀯浣撶被鍨嬶紝鑺傜偣鏈変袱涓垚鍛橈細鏁村瀷鎴愬憳锛堝疄闄呴渶瑕佷繚瀛樼殑鏁版嵁锛夊拰鎸囧悜涓嬩竴涓粨鏋勪綋绫诲瀷鑺傜偣鐨勬寚閽堝嵆涓嬩竴涓妭鐐圭殑鍦板潃锛堜簨瀹炰笂锛屾鍗曢摼琛ㄦ槸鐢ㄤ簬瀛樻斁鏁村瀷鏁版嵁鐨鍔ㄦ佹暟缁勶級銆傞摼琛ㄦ寜姝ょ粨鏋勫鍚勮妭鐐圭殑璁块棶闇浠...
  • 鏁版嵁缁撴瀯C璇█鐗闂
    绛旓細//鍦ㄥ崟閾捐〃涓繘琛屼竴瓒熸娴嬶紝鎵惧嚭鍏锋湁鏈澶у肩殑缁撶偣鍦板潃, 濡傛灉琛ㄧ┖, 杩斿洖鎸囬拡NULL if ( first->link == NULL ) return NULL; //绌鸿〃, 杩斿洖鎸囬拡NULL ListNode <Type> * pmax = first->link, p = first->link->link;//鍋囧畾绗竴涓粨鐐涓暟鎹鍏锋湁鏈澶у while ( p != NULL ) { /...
  • 扩展阅读:数据结构c语言版严蔚 ... 数据结构知识点归纳 ... 数据结构舞伴匹配问题 ... 结构化数据有哪三种 ... 数据结构必须学c吗 ... c难还是数据结构难 ... 数据结构是最难的课吗 ... 初学者数据结构怎样学 ... 数据结构c语言版刷题软件 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网