3126010018吴泽世数据结构7.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3126010018吴泽世数据结构7

1. 假设用于通信的电文仅由8个字母(a, b, c, d, e, f, g, h)组成,字母在电文中出现的频率分别是0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21和0.10。为这8个字母设计一套哈夫曼编码,并计算其一个字母的平均编码长度(二进制位数)。 a:1100 b:00 c:11110 d:1110 e:10 f:11111 g:01 h:1101 平均编码长=4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.21+4*0.1=2.61 2. 无向网的5个顶点依序为a, b, c, d, e,其邻接矩阵如下,画出该图及其最小生成树。 3. 画出如下有向图的邻接表。 编写运用栈实现图的深度优先搜索的非递归算法。 #include stdio.h #include stdlib.h #include malloc.h #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 int visited[20]={0}; typedef struct { char vexs[20];/*顶点表*/ int edges[20][20]; int n,e; }Mgraph; typedef struct BiTNode { int data; struct BiTNode *lchild,*rchild; } BiTNode,*BiTree; typedef struct SqStack { int *base; int *top; int stacksize; } SqStack; void InitStack(SqStack *S) { S-base=(int*)malloc(STACK_INIT_SIZE*sizeof(int)); S-top=S-base; S-stacksize=STACK_INIT_SIZE; } void Push(SqStack *S,int e) { if(S-top-S-base=S-stacksize) { S-base=(int*)realloc(S-base, (S-stacksize+STACKINCREMENT)*sizeof(int)); S-top=S-base+S-stacksize; S-stacksize+=STACKINCREMENT; } *(S-top)=e; S-top++; } int Pop(SqStack *S) { S-top --; return *S-top; } int StackEmpty(SqStack *S) { if(S-top == S-base ) return 1; else return 0; } void CreateMGraph(Mgraph *G) { int i,j,k; printf(输入顶点和边数\n); scanf(%d %d, G-n,G-e); getchar(); printf(输入%d个顶点\n,G-n); for(i=0;iG-n; i++ ) G-vexs[i]=getchar(); for (i = 0;iG-n; i++) for (j = 0;j G-n; j++) G-edges[i][j]=0; printf(输入%d条边:\n,G-e); for(k = 0;kG-e;k++) { scanf(%d%d,i,j); G-edges[i][j]=1; } } void DFSM(Mgraph *G, int i) { int j;SqStack S; InitStack(S); printf(访问:%c,G-vexs[i]); visited[i]=1; Push(S,i); while(!StackEmpty(S)) { i=Pop(S); j=0; while(jG-n) { if(G-edges[i][j]==1!visited[j]) { printf(访问:%

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档