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

二叉链表先序创建程序填空 将一数组中元素依次加入链...

二叉链表先序创建程序填空 将一数组中元素依次加入链表, 过程:创建带头结点的空树->创建根节点->插入其他结点。每次插入其它新结点时,若新节点小于根节点,则将新节点放入根节点的左子树,否则放入根节点的右子树。放入左子树或右子树过程是:若子树为空,则结点成为根节点,否则按照相同原则(红色字),即递归。 typedef int ElemType; //定义结点数据为int型 typedef int Status; //定义函数类型为int型 #define ERROR 0 #define OK 1 struct BiTNode{ //定义结构体 ElemType data; //结点数值 struct BiTNode *lchild; //左孩子指针 struct BiTNode *rchild; //右孩子指针 }; BiTNode *BiTree, *q,*s; Status InitBiTree() { //构造空二叉树 if(!(BiTree=(BiTNode*)malloc(sizeof(BiTNode)))) return ERROR; //若申请空间失败则退出 BiTree->lchild=NULL; BiTree->rchild=NULL; printf("\n\t空二叉树构建成功!\n\n"); //创建头结点,头结点非根节点 return OK; } Status insert(ElemType k ) { if(k<__________) 2分 { if(!(q->lchild==NULL)) {q=q->lchild; insert(k);} //递归调用 else {__________=s; s->data=k; s->lchild=NULL;s->rchild=NULL;} //1分 } else { if(!(q->rchild==NULL)) {q=q->rchild; insert(k);} else {_________=s; s->data=k; s->lchild=NULL;s->rchild=NULL;} //1分 } return OK; } Status CreateBiTree(BiTNode *T) { //构造二叉链表示的二叉树T ElemType array[5],i,j; for(i=0;i<5;i++) scanf("%d",&array[i]); if(s="(BiTNode*)malloc(sizeof(BiTNode)))" 创建根节点 { if((________="=NULL)&&(_________==NULL))" 判断是否为空树,共2分 t->lchild=s; //用头结点的左指针指向根节点 q=T->lchild; q->lchild=NULL; q->rchild=NULL; q->data=array[0]; } else return ERROR; }else return ERROR; for(____________________) //共2分 { if(s=(BiTNode*)malloc(sizeof(BiTNode))) insert(array[j]); else return ERROR; } } main() { InitBiTree(); _____________; //2分 }

暂无答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“二叉链表先序创建程序填空 将一数组中元素依次加入链...”相关的问题

第1题

采用二叉链表存储结构,Visit是对数据元素操作的应用函数,先序遍历线索二叉树的递归算法,对每个数据元素调用函数Visit。

点击查看答案

第2题

设计算法将一棵以二叉链表存储的二叉树按顺序方式存储到一维数组中。(注:按层由上到下,由左到右)【东南大学2005数据结构部分四(15分)】

点击查看答案

第3题

下列结构中属于线性结构链式存储的是()

A.双向链表

B.循环队列

C.二叉链表

D.二维数组

点击查看答案

第4题

下列链表中,其逻辑结构属于非线性结构的是( ), 循环链表 双向链表 带链的栈 二叉链表

点击查看答案

第5题

下列链表中,其逻辑结构属于非线性结构的是( )。

A.二叉链表

B.循环链表

C.双向链表

D.带链的栈

点击查看答案

第6题

具有n个结点的完全二叉树,顺序存储在一维数组A[1…,z]中,设计算法将A中顺序存储变为二叉链表存储的二叉树。

点击查看答案

第7题

下列链表中,其逻辑结构属于非线性结构的是( )

A.双向链表

B.带链的栈

C.二叉链表

D.循环链表

点击查看答案

第8题

以下是用类C语言写出的算法,该算法将以二叉链表存储的二叉树中的叶子结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild域作为前链域,指向结点的直接前驱,结点的Rchild域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack,栈顶指针为top,P、t为辅助指针,head为双向循环链表的头指针。试填充算法中的空格,以完整算法。 void leafchain(BiTree&bt) {p=(BiTree)malloc(sizeof(BiTNode));

点击查看答案

第9题

以下是用类C语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild域作为前链域,指向结点的直接前驱,结点的Rehild域作为后链域,指向结点的直接后继。算法,使用一个顺序栈stack,栈顶指针为top,p、t为辅助指针,head为双向循环链表的头指针。试填充算法中的空格,使算法完整。 void leafchain( ){ p=(BiTree)malloc(sizeof(BiTNode)); if(!p){ printf(“OVERFLOW\n”); exit(1); } head=p; top=0; if(bt){ top++: stack[top]=bt; while(top){ t=stack[top]; top——; if(!t->Lchild&&!t->Rchild){ (1) (2) (3) } else{ if( (4) ){ top++; stack[top]= (5) } if( (6) ){ top++: stack[top]= (5) } } } (8) (9) } }

点击查看答案

第10题

可以不用栈实现基于中序线索二叉链表对二叉树进行中序遍历。
点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

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

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

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