父亲儿子计算机语言,c语言之父_C语言编程,父亲30岁。儿子6岁,问多少年后父亲的岁数是儿子的2倍...

做个循环,当是你要的答案的时候

break

就可以了

c语言问题

仔细检查过了。程序逻辑上没有问题。不过我的VC上要把所有的null都改为NULL才行,另外还有些中文字符,引号之类的小问题。

在创建二叉树的过程中,由第34行可知,实际上根的指针为数组temp的元素temp[1],而temp的定义最好改为temp[MAXSIZE+1]。不过不改也没什么,就是能输入树的节点个数最多为MAXSIZE-1而已,要清楚这点。

在原来程序上添加了注释,在分配内存后加了失败检查。楼主说的i--部分不会造成死循环,只要你在输入节点数据时能保证其父亲节点在这之前都已经输入(temp对应元素不为NULL)就行。所以最好从上到下,从左到右依次输入节点数据。

修改后程序(添加了遍历程序,以便主函数检查树的创建是否成功):

#include"stdio.h"

#include"stdlib.h"

#defineMAXSIZE

typedefcharElemtype;

structtree_nodeElemtypedata;

structtree_node*lch,*rch;

};//创建二叉树节点类型

/*create_tree创建一棵二叉树,不一定是完全树*/

structtree_node*create_tree()//创建一棵树

{//树的根从编号1开始。回头返回时数组撤销,但是树还在

structtree_node*t,*p,*temp[MAXSIZE+1];

inti,j,n,f;

Elemtypex;

for(i=1;i<=MAXSIZE;i++)//所有节点都置空

temp[i]=NULL;

printf("输入节点数");

scanf("%d",&n);

for(i=1;i<=n;i++)printf("输入节点序号和节点值:");//必须由根到叶创建节点

scanf("%d,%c",&j,&x);//编号,取值对

if(temp[j/2]==NULL)//因为是二叉树,每个节点一定有父亲节点printf("输节点错误,请重新输入");

i--;//要和for后面的i++抵消,原地重新输入节点,所以要--

continue;//重新进入输入环节。p=(structtree_node*)malloc(sizeof(structtree_node));//创建一个节点

if(!p)returnNULL;

p->data=x;//新建的节点的数据值

p->lch=NULL;//俩指针都指向NULL

p->rch=NULL;

temp[j]=p;//把p挂到树上指定位置。

if(j==1)//树根。t指向树根。回头函数返回t即可返回这棵树。

t=p;

elsef=j/2;

if(j%2==0)

temp[f]->lch=p;//挂左边

else

temp[f]->rch=p;//挂右边return(t);/*LDR:二叉树中序遍历*/

voidLDR(structtree_node*tree)if(!tree)return;

LDR(tree->lch);

printf("%c",tree->data);

LDR(tree->rch);

return;/*LRD:二叉树后序遍历*/

voidLRD(structtree_node*tree)if(!tree)return;

LRD(tree->lch);

LRD(tree->rch);

printf("%c",tree->data);

return;/*DLR:二叉树先序遍历*/

voidDLR(structtree_node*tree)if(!tree)return;

printf("%c",tree->data);

DLR(tree->lch);

DLR(tree->rch);

return;intmain()structtree_node*tree=create_tree();

printf("二叉树中序遍历结果:");

LDR(tree);

printf("\n");

printf("二叉树先序遍历结果:");

DLR(tree);

printf("\n");

printf("二叉树后序遍历结果:");

LRD(tree);

printf("\n");

return0;

智慧档案馆建设方案旨在通过先进的信息技术和智能化手段,全面提升档案管理的效率和安全性,满足现代档案管理的需求。方案涵盖了软件、硬件、网络及安全、分布式存储、数据保护、机房建设等多个方面,确保档案馆在数字化、智能化转型中具备高效、安全、可扩展的能力。 在软件部分,智慧档案馆平台集成了档案接收、管理、保存、智能库房管理、辅助鉴定、编研、统计、内部利用、电子阅览室智能服务等功能模块。通过智能化的档案接收和管理流程,系统能够高效处理各类档案数据,支持历史数据迁移、数字化成果接收、征集档案接收等操作。智能库房管理模块通过虚拟库房、调卷归卷管理、温湿度管理等功能,确保实体档案的安全保管和高效利用。此外,系统还提供了智能辅助鉴定、编研、统计等功能,帮助档案馆实现档案的智能化管理和利用。 硬件部分则包括网络及安全设备、分布式存储、数据保护一体机、离线备份设备、机房建设等。网络及安全设备如核心交换机、汇聚交换机、下一代防火墙、终端安全管理系统等,确保了档案馆网络的高效运行和数据的安全防护。分布式存储系统通过全分布式架构和数据冗余技术,提供了高可伸缩性和高可用性,支持多副本或EC冗余机制,确保数据的安全性和快速重构。数据保护一体机和离线备份设备则通过多种备份和恢复机制,确保数据的完整性和可恢复性。机房建设部分则通过UPS、精密配电柜、精密空调、冷通道机柜等设备,确保机房的稳定运行和高效管理。 智慧档案馆建设方案不仅顺应了国家档案信息化建设的政策要求,还结合了云计算、区块链等新技术,确保了系统的先进性和安全性。通过智能化的档案管理和高效的数据保护机制,档案馆能够更好地服务于公众,提升档案利用效率,实现档案资源的共建共享。这一方案不仅是档案数字化转型的重要举措,也为未来档案馆的智能化发展奠定了坚实基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值