当前位置: 首页 > news >正文

好一点的网站建设郑州网站开发公司

好一点的网站建设,郑州网站开发公司,旅游平台网站合作建设方案,做楼盘网站解:思路:既然要求从上到下,从左到右,则利用队列存放各子树结点的指针是个好办法。 这是一个循环算法,用while语句不断循环,直到队空之后自然退出该函数。 技巧之处:当根结点入队后,会…

解:思路:既然要求从上到下,从左到右,则利用队列存放各子树结点的指针是个好办法。
这是一个循环算法,用while语句不断循环,直到队空之后自然退出该函数。
技巧之处:当根结点入队后,会自然使得左、右孩子结点入队,而左孩子出队时又会立即使得它的左右孩子结点入队,……以此产生了按层次输出的效果。
level(liuyuT)
/
liuyu *T,*p,q[100]; 假设max已知/
{int f,r;
f=0; r=0; /置空队/
r=(r+1)%max;
q[r]=T; /根结点进队/
while(f!=r) /队列不空/
{f=(f+1%max);
p=q[f]; /出队/
printf(“%d”,p->data); /打印根结点/
if(p->lchild){r=(r+1)%max; q[r]=p->lchild;} /若左子树不空,则左子树进队/
if(p->rchild){r=(r+1)%max; q[r]=p->rchild;} /若右子树不空,则右子树进队/
}
return(0);
}
法二:
void LayerOrder(Bitree T)//层序遍历二叉树
{
InitQueue(Q); //建立工作队列

EnQueue(Q,T);
while(!QueueEmpty(Q))
{
DeQueue(Q,p);
visit§;
if(p->lchild) EnQueue(Q,p->lchild);
if(p->rchild) EnQueue(Q,p->rchild);
}
}//LayerOrder

可以用前面的函数建树,然后调用这个函数来输出。

完整程序如下(已上机通过)
#include <stdio.h>
#include <stdlib.h>
#define max 50
typedef struct liuyu{int data;struct liuyu *lchild,*rchild;}test;
liuyu *root,*p,*q[max];
int sum=0;int m=sizeof(test);

void insert_data(int x) /如何生成二叉排序树?参见教材P43C程序/
{ liuyu *p,*q,s;
s=(test
)malloc(m);
s->data=x;
s->lchild=NULL;
s->rchild=NULL;

if(!root){root=s; return;}
p=root;
while§ /如何接入二叉排序树的适当位置/
{q=p;
if(p->data==x){printf(“data already exist! \n”);return;}
else if(xdata)p=p->lchild; else p=p->rchild;
}
if(xdata)q->lchild=s;
else q->rchild=s;
}

level(liuyuT)
/
liuyu *T,*p,q[100]; 假设max已知/
{int f,r;
f=0; r=0; /置空队/
r=(r+1)%max;
q[r]=T; /根结点进队/
while(f!=r) /队列不空/
{f=(f+1%max);
p=q[f]; /出队/
printf(“%d”,p->data); /打印根结点/
if(p->lchild){r=(r+1)%max; q[r]=p->lchild;} /若左子树不空,则左子树进队/
if(p->rchild){r=(r+1)%max; q[r]=p->rchild;} /若右子树不空,则右子树进队/
}
return(0);
}

void main() /先生成二叉排序树,再调用深度遍历递归函数进行统计并输出/
{int i,x;
i=1;
root=NULL; /千万别忘了赋初值给root!/
do{printf(“please input data%d:”,i);
i++;
scanf(“%d”,&x); /从键盘采集数据,以-9999表示输入结束/
if(x==-9999){
printf(“\nNow output data value:\n”, level(root)); return; }
else insert_data(x);} /调用插入数据元素的函数/
while(x!=-9999);
return;}

  1. 已知一棵具有n个结点的完全二叉树被顺序存储于一维数组A中,试编写一个算法打印出编号为i的结点的双亲和所有的孩子。
    答:首先,由于是完全二叉树,不必担心中途会出现孩子为null的情况。
    其次分析:结点i的左孩子为2i,右孩子为2i+1;直接打印即可。
    Printf(“Left_child=”, %d, v[2i].data; “Right_child=”, %d, v[2i+1].data;);
    但其双亲是i/2,需先判断i为奇数还是偶数。若i为奇数,则应当先i-- ,然后再除以2。
    If(i/2!=0)i–;
    Printf(“Parents=”, %d, v[i/2].data;);
http://www.zhongyajixie.com/news/66074.html

相关文章:

  • 网站怎么运营推广律师网络推广
  • 手机微网站怎么做怎么查百度收录
  • 天津网站建设优化开发网站需要多少钱
  • 虚拟币交易网站开发企业网站
  • 佛山网站代运营传统营销
  • 新公司做网站有效果吗潜江seo
  • 泰安网站建设步骤网推放单平台
  • 山西网站建设费用公司网络推广营销
  • wordpress搬家后台还是老网站网络的推广方式有哪些
  • 最好的网站建设系统百度助手安卓版下载
  • 网页设计网站有哪些外国网站的浏览器
  • 给人做赌博网站磁力引擎
  • 郴州信息港网站企业营销管理
  • 上海企业网站开发张雷明任河南省委常委
  • 自己做短视频的网站排名网站
  • 得物app公司免费seo快速排名系统
  • 找别人做网站多少钱seo排名点击手机
  • 做淘宝客需要企业网站吗sem搜索引擎
  • 国产做性直播视频网站如何做一个网站的seo
  • 做网站哪家好哪家好关键词排名优化公司哪家好
  • 自己做的网站页面错误seo技术交流论坛
  • 爱旅游网站制作举例说明seo
  • 大庆城乡建设局网站首页免费海报模板网站
  • 网站开发商业计划书搜索引擎营销案例分析题
  • 为什么招聘网站不能用自己做的简历人民日报今天新闻
  • 网站建设服务商怎么创建一个自己的网站
  • 惠州做网站建设价格优化推广网站怎么做
  • 做网站策划需要什么技能百度一下你就知道了百度一下
  • 合肥市住房和城乡建设局手机优化大师下载2022
  • 试用体验网站网络推广文案