题目内容 (请给出正确答案)
[主观题]

树的存储结构如下: define MAX一TREE—SIZE 100 typedef struct CTNode{ //孩子结点

int child; struct CTNode *next ; }*childPtr; typedef struct { E1emtype data; childPtr *firstchild; //孩子链表头的指针 }*CTBox; Typedef struc

提问人:网友zoudalin 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“树的存储结构如下: define MAX一TREE—SIZE…”相关的问题
第1题
假定无向图以邻接矩阵形式存储,邻接矩阵的定义如下: define MAX 20 typedef char ElemType ;
strUCt MGraph{ ElemType vexs[MAX]; //顶点数组 int arcs[MAX][MAX]; //邻接矩阵 int vexnum; //顶点数 }; 试用C语言编写算法函数并分析时间复杂度。 1)intDeleteNode(structMGraph&G,ElemTypee);从图G中删除顶点值为e的顶点,成功返回1,否则返回0。 2)intDeleteEdge(strUCtMGraph&G,ElemTypea,ElemTypeb);从图G中删除边(a,b),成功返回1,否则返回0。

点击查看答案
第2题
假设线性表采用顺序存储结构,其类型定义如下: define ListSize 100 typedef struct{ int data假
设线性表采用顺序存储结构,其类型定义如下: define ListSize 100 typedef struct{ int data[ListSize]; int length; }SeqList,*Table; 编写算法,将顺序表L中所有值为奇数的元素调整到表的前端。

点击查看答案
第3题
假设线性表采用顺序存储结构,其类型定义如下: define ListSize 100 typedef struct{ int data

假设线性表采用顺序存储结构,其类型定义如下:

define ListSize 100

typedef struct{

int data[ListSize];

int length;

}SeqList,*Table;

编写算法,将顺序表L中所有值为奇数的元素调整到表的前端。

点击查看答案
第4题
已知长度为n的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的数据元素按逆序重新排列。 只写函数模块完成此项功能,参数为顺序表A,数据类型简化定义如下: define MAXSIZE 100 //线性表的最大长度 ElemType A[MAXSIZE];
点击查看答案
第5题
图的邻接表的类型定义如下所示: define MaxVertexNum 50 typedef struct node{ int adjvex;图的
邻接表的类型定义如下所示: define MaxVertexNum 50 typedef struct node{ int adjvex; struct node*next; }EdgeNode; typedef struct{ VertexType vertex; EdgeNode*firstedge; }VertexNode; typedef VertexNode A djList[MaxVertexNum]; typedef struct{ AdjList adjiist; int n,e; }ALGraph; 为便于删除和插入图的顶点的操作,可将邻接表的表头向量定义为链式结构,两种定义的存储表示实例如下图所示,请写出重新定义的类型说明。

点击查看答案
第6题
以二叉链表为存储结构,设计一个算法求二叉树高度。  二叉树的高度为定义为:(1)当为空树时,高度为0;     (2)当只有一个结点时,高度为1;    (3)其他情况:高度为max(根的左子树高度,根的右子树高度)+1 typedef struct bitnode {char data; Struct bitnode *lchild,*rchild;}Bitnode,*bitree;
点击查看答案
第7题
有如下程序段:#include <stdio.h>#define Max(a,b) a>b?a:bmain(){int a=5,b=6,c=4,d;d=c+Max(a,

有如下程序段: #include <stdio.h> #define Max(a,b) a>b?a:b main() { int a=5,b=6,c=4,d; d=c+Max(a,b) ; printf("%d",d) ; } 其输出结果为______。

A.10

B.5

C.6

D.编译错误

点击查看答案
第8题
已知图的邻接表表示的形式说明如下: define MaxNum 50//图的最大顶点数 typedef struct node{

已知图的邻接表表示的形式说明如下:

define MaxNum 50 //图的最大顶点数

typedef struct node{

int adjvex; //邻接点域

struct node*next; //链指针域

}EdgeNode; //边表结点结构描述

typedef struct{

char vertex; //顶点域

EdgeNode*firstedge;//边表头指针

}VertexNode; //顶点表结点结构描述

typedef struet{

VertexNode adjlist[MaxNum];//邻接表

int n,e; //图中当前的顶点数和边数

}ALGraph; //邻接表结构描述

下列算法输出图G的深度优先生成树(或森林)的边。阅读算法,并在空缺处填入合适的内容,使其成为一个完整的算法。

typedef enum{FALSE,TRUE}Boolean;

Boolean visited[MaxNurn];

void DFSForest(ALGraph*G){

int i;

for(i=0;i<G—>n;i++)visited[i]= (1) ;

for(i=0;i<G—>n;i++)if(!visited[i])DFSTree(G,i);

}

void DFSTree(ALGraph*G,int i){

EdgeNode*p;

visited[i]=TRUE;

p=G—>adjlist[i].firstedge;

while(p!=NULL){

if(!visited[p—>adjvex]){

printf("<%c,%c",G—>adjlist[i].vertex,

G—>adjlist[p—>adjvex].vertex);

(2) ;

}

(3) ;

}

}

点击查看答案
第9题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 [说明] HufTman树又称最优二叉树,

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

[说明]

HufTman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。

构造最优二叉树的Huffman算法如下:

①根据给定的n各权值{W1,w2,…,wn)构成n棵二叉树的集合F={T1,T2,…,Tn},其中每棵树Ti中只有一个带权为wi的根节点,其左右子树均空。

②在F中选取两棵根节点的权值较小的树作为左右子树,构造一棵新的二叉树,置新构造二叉树的根节点的权值为其左右予树根节点的权值之和。

③从F中删除这两棵树,同时将新得到的二叉树加入到F中。

重复②③,直到F中只剩一棵树为止。

函数中使用的预定义符号如下:

#define INT MAX 10000

#define ENCODING LENGTH 1000

typedef enum(none,left_child,right_child) Which;

/*标记是左孩子还足右孩子*/

typedef char Elemtype;

typedef struct TNode{//Huffman树节点

Elemtype letter;

int

weight; //权值

int parent; //父节点

Which sigh;

char *code; //节点对应编码

}HTNode,*HuffmanTree;

int n;

char coding[50];//储存代码

[函数]

void Select(HuffmanTree HT,int end,int *sl,int *s2)

/*在0~END之间,找出最小和次小的两个节点序号,返吲S1、S2*/

{

int i;

int min 1=INT_MAX;

int min 2=INT_MAX;

for(i=0;i<=end;i++){/*找最小的节点序号*/

if(((1) )&&(HT[i].weight<minl)){

*s1=i;

min 1=HT[i].weight;

}

}

for(i=0;i<=end;i++){/*找次小节点的序号*/

if((HT[i].parent==0)&&((2) )

&&(min 2>HT[i].weight)){

*s2=i;

min 2=HT[i].weight;

}

}

}

void HuffmanTreeCreat(HuffmanTree&HT)/*建立HUFFMAN树*/

{

int i;

int m=2*n-1;

int s1,s2;

for(i=n;i<m;i++){

Select((3) );

HT[s1].parent=i;

HT[s2].parent=i;

HT[s1].sigh=left child;

HT[s2].sigh=right child;

HT[i].weight=(4);

}

}

void HuffmanTreeEncoding(char sen[],HuffmanTree HT)

{ /*将句子进行编码*/

int i=0;

int j;

while(sen[i] !='\0'){

for(j=0;j<n;j++){

if(HT[j].letter==sen[i])(/*字母吻合则用代码取代*/

strcat(coding, (5) );

break;

}

}

i++;

if (Sen [1]==32) i++;

}

printf("\n%s",coding);

}

(1)

点击查看答案
第10题
请补充main函数,该函数的功能是:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数
为0时结束。

例如,输入1,2,3,5,4,0时,最大的数为5。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写出的若干表达式或语句。

试题程序:

include<stdio.h>

include<conio.h>

define N 100

main()

{

int num[N];

int i=-1;

int max=0;

clrscr();

printf("\nInput integer number:\n");

do

{

i++;

printf("num[%d]=",i);

scanf("%d",【 】);

max=【 】num[i]:max;

}while (【 】);

printf("max=%dkn",max);

}

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信