第一篇:判定其是否为完全二叉树(小编推荐)
#include
~BiTree();BiNode
void PreOrder(BiNode
void PreOrder1(BiNode
void CountLeaf(BiNode
int LeafNodes(BiNode
bool ComBiTree(BiNode
void Release(BiNode
root->data=ch;root->lchild = Creat();//递归建立左子树
root->rchild = Creat();//递归建立右子树
} return root;} /*.......................析构函数..........................*/ template data;if(p->rchild!=NULL){ top++;s[top]=p->rchild;} if(p->lchild!=NULL){ top++;s[top]=p->lchild;} if(p->lchild==NULL&&p->rchild==NULL){ n++;} } cout< s[top].flag=1;root=root->lchild;} while(top!=-1&&s[top].flag==2){ root=s[top--].ptr;cout< template void main(){ cout<<“请输入构建二叉树的扩展序列:”< //注意这里的int型。这里要用实际的类型区定义类的数据类型 no appropriate default constructor available 找不到构造函数 /*常常在编译C++的时候,会出现这个问题,这儿是因为系统找不到默认的构造函数。因为类在没有定义任何构造函数的时候,系统才会默认产生构造函数,一旦定义了任何形式的构造函数,系统就不会在产生默认的构造函数了。 该错误是所找不到正确的无参数的构造函数。所以,一般情况下,只需要写一个空的构造函数,就可以解决问题。*/ BiNode 数据结构与算法 课程设计报告 课程设计题目: 二叉树平衡的判定 专业班级: 信息与计算科学1001班 姓 名: 谢炜 学 号:100701114 设计室号: 理学院机房 设计时间: 2011-12-26 批阅时间: 指导教师: 杜洪波 成 绩: 一、摘要: 基于我们对C语言和数据结构的学习我们有能力编写处理一些比较基本而又简单的问题。在我们此题我们的目标就是任意给出一个二叉树我们判断是否为平衡的二叉树。 我们在学习计算机语言类的知识时当然要注重理论知识的学习,但是我们要明确我们学习的是计算机语言,由于课程的性质就决定了我们必须将我们在课本中学到的知识在计算机上运行并且自己能编写一些比较简单的程序,这才是我们学习计算机语言的最终目的而不是满足于理解一个理论会算一个题。因而我们将要抓住这样一个锻炼的机会 所谓平衡二叉树,它或者是一颗空树或者是具有下列性质的二叉树:它的左右子树都是平衡二叉树,且左右子树的深度之差得绝对值不超过1。 在我们这个判定任意给定的二叉树的题中。我们处理这道题的主要的思路是:首先按先序和中序或者按中序和后序的方式将我们所要判断的二叉树输入进入,目的是要得到一个明确的二叉树的结构准确的判断二叉树是否平衡。在我们判断二叉树的平衡中我们将分别考虑二叉树左右子树的是不是为平衡二叉树,依次得到左右子树的深度,判断左右子树的平衡性。 在我们的设计思路中我们将用到不同的树的遍历方式。 二、问题重叙: 平衡二叉树的判断,设计要求给定一个先序或者后序的遍历结果,判断其是否为二叉树。问题分析: 在处理二叉树平衡的判断的问题中。我们需要将分别考虑二叉树的左右子树的平衡问题只要左右子树确定为平衡二叉树,而且左右子树的深度的绝对值之差不大于1,那么我们得到的就是一颗平衡的二叉树。 我们将先通过前序和中序或者中序和后序将所要判断的二叉树输入。建立一个明确的二叉树在此基础上判断二叉树是否为平衡二叉树。 我们先建立一个二叉树并用前序和中序或者中序和后序遍历的方式将我们输入的树的元素输入得到一个明确的树的结构。 三、流程图如下: 四、模块分析: 1、定义一个结构体存储各节点的信息,并且用递归的方法存储左右子树的信息 typedef struct BINTREE { char chData;struct BINTREE * pbLChild;struct BINTREE * pbRChild;} BinTree, * pBinTree; 2、分别得到树的深度以及左右子树的深度 int BT_GetTreeDepth(pBinTree pbTree){ //存储树总的深度 int iDepthTotal = 0;//存储左子树的深度 int iDepthLeft = 0;//存储右子树的深度 int iDepthRight = 0; if(pbTree == NULL){ iDepthTotal = 0;} else { // 左孩子的深度 iDepthLeft = BT_GetTreeDepth(pbTree->pbLChild); // 右孩子的深度 iDepthRight = BT_GetTreeDepth(pbTree->pbRChild); // 去左右孩子深度的最大值,1代表着根节点 iDepthTotal = 1 +(iDepthLeft > iDepthRight ? iDepthLeft : iDepthRight);} return iDepthTotal;} 3、判断左右子树是不是为平衡二叉树 bool BT_IsBalanceTree(pBinTree pbTree){ //如果树不是空的if(pbTree!= NULL){ //存储左孩子的深度 int iLeftDepth = 0; //存储右孩子的深度 int iRightDepth = 0; //得到左孩子的深度 iLeftDepth = BT_GetTreeDepth(pbTree->pbLChild); //得到右孩子的深度 iRightDepth = BT_GetTreeDepth(pbTree->pbRChild); //判断树是不是平衡二叉树 平衡二叉树的左右孩子的深度绝对值只差不大于 if((iLeftDepthiRightDepth <= 1)) { // 判断左子树是不是平衡的 BT_IsBalanceTree(pbTree->pbLChild); //判断右子树是不是平衡的 BT_IsBalanceTree(pbTree->pbRChild); } else { return false; } } else { return false;} return true;} 4、输入各节点元素 bool BT_PreInToTree(pBinTree & pbTree, char * szInOrder, char * szPreOrder, int iInLeft, int iInRight, int iPreLeft, int iPreRight) BT_PreInToTree(pbTree->pbLChild, szInOrder, szPreOrder, iInLeft, iCurPosiRightDepth >=-1)&&(iLeftDepthiInLeft;// If current position is greater than left, generate left child if(iCurPos > iInLeft){ BT_PreInToTree(pbTree->pbLChild, szInOrder, szPreOrder, iInLeft, iCurPosiInLeft;// If the current position is greater than the left border, generate the left child if(iCurPos > iInLeft){ BT_InPostToTree(pbTree->pbLChild, szInOrder, szPostOrder, iInLeft, iCurPos1);} // If the current position is less than the right border, generate the right child if(iCurPos < iInRight){ BT_InPostToTree(pbTree->pbRChild, szInOrder, szPostOrder, iCurPos + 1, iInRight, iPostLeft + iLengthLeft, iPostRight-1);} return true;} void BT_PreOrder(pBinTree pbTree){ if(pbTree!= NULL){ // The preorder traversal is, root, left child, right child printf(“%c ”, pbTree->chData); BT_PreOrder(pbTree->pbLChild); BT_PreOrder(pbTree->pbRChild);} } void BT_PostOrder(pBinTree pbTree){ if(pbTree!= NULL){ // The postorder traversal is, left child, right child, root BT_PostOrder(pbTree->pbLChild); BT_PostOrder(pbTree->pbRChild); printf(“%c ”, pbTree->chData);} } void main(){ char szPre [100] = “";char szMid [100] = ”“;char szPost [100] = ”“;pBinTree pbPreInTree;pBinTree pbPostInTree;int iMode = 0;printf(”请选择生成二叉树规则:前序和中序(0),后序和中序(1)n“);scanf(”%d“,&iMode);switch(iMode){ case 0: { printf(”请输入前序序列:n“); scanf(”%s“,&szPre);printf(”请输入中序序列:n“); scanf(”%s“,&szMid);bool bCorrect = BT_PreInToTree(pbPreInTree, szMid, szPre, 0, strlen(szMid)-1, 0, strlen(szPre)-1); if(bCorrect) {printf(”该树的后序序列为:n“); BT_PostOrder(pbPreInTree); if(BT_IsBalanceTree(pbPreInTree)) {printf(”该树是平衡二叉树“); } else {printf(”这个不是平衡二叉树“); } } else {printf(”不要乱输,前序与中序不匹配“);} } break;case 1: {printf(”请输入中序序列:n“);scanf(”%s“,&szMid);printf(”请输入后序序列:n“);scanf(”%s“,&szPost);bool bCorrect = BT_InPostToTree(pbPostInTree, szMid, szPost, 0, strlen(szMid)-1, 0, strlen(szPost)-1); if(bCorrect) {printf(”该树的前序序列为:n“);BT_PreOrder(pbPostInTree); if(BT_IsBalanceTree(pbPostInTree)) {printf(”该树是平衡二叉树“); } else {printf(”这个不是平衡二叉树“); } } else {printf(”不要乱输,中序与后序不匹配“); } } break;default: {printf(”不要乱选,不支持其他模式"); } } } 如何判定纯外文标签的食品是否为进口食品 黄璞琳 网友问题: 最近,我们办案单位查处了一批预包装食品,其标识全是英文。现有几个问题请教:一是,如何来证明是否是进口食品?二是,如果不是进口的食品又如何来进行定性,违反《食品安全法》哪一条款?三是,证明是否是进口食品,是否对这些英文进行翻译?翻译时,是否要翻译的人作为证言证词? 个人看法: 是否进口食品,不取决于标签是否英文,而应核实其真实产地。有进口手续,是合法进口食品的重要凭据。但不能提供合法进口手续,并不当然地表示就不是进口的,因为有可能是走私品。 其实,无论是否进口食品,只要无中文标签,就属标签不符合《食品安全法》第四十二条规定的食品,依食品安全法第八十六条第(二)项查处。理由是:根据《中华人民共和国国家通用语言文字法》第十四条,在中国境内销售的商品的包装、说明,应当使用以国家通用语言文字(普通话和规范汉字)为基本的用语用字。结合《产品质量法》第二十七条有关产品必须有相关中文标识的规定,以及《食品安全法》第六十六条有关进口预包装食品应当有中文标签中文说明书的规定,《食品安全法》第四十二条有关预包装食品的标签应当载明的事项,是指用中文载明相关事项。 将英文标签翻译成中文,若有法定翻译资质的机构进行翻译,当然最好。其实,只要不是专业性特别强、难度特别高的外文,只需有懂外文的人准确翻译后,在处罚文书中进行阐述其含义即可。当然,翻译文本由译者签名,并附具其身份证明、学历或资历证明的,可作为证据使用。 2012/1/8 如何判定用人单位规章制度是否有效? 王 斌 企业规章制度是指用人单位根据有关法律法规以及企业自身特点制定的,在本单位实行的有关组织和进行劳动管理的规则总称。企业规章制度通常由管理制度、操作规程、劳动纪律和奖惩办法等组成。具体内容包括劳动合同管理、酬薪管理、社会保险、福利待遇、工时休假、职工奖惩以及其他劳动管理规定等。制定规章制度既是用人单位的法定权利,也是用人单位的法定义务。一套比较完善的规章制度对于企业具有特别重要的意义,可以降低用工风险,减少劳动争议的发生和规范员工的行为,完善的规章制度可以使用人单位的劳动管理行为规范化,从而排除用人单位任意发号施令,乱施处罚权,保障劳动者合法权利,但是不合理的违法的规章制度会侵犯职工权益。企业规章制度不仅是一种规定,还赋予职工以权利和义务,从而产生积极地正面效应。 企业规章制度由企业自己制订,但又能够和法律一样约束企业内的所有员工,因此法律不得不对企业规章制度的有效性做出限制,并不是说企业规章制度一经制订出来就是有效的。 如何判定用人单位制定的规章制度是否有效?由于法律并未对规章制度生效要件做出直接的明文规定,笔者经研究认为用人单位规章制度必须符合以下四个条件: 一是用人单位的规章制度必须合法。所谓合法,包括内容合法和程序合法。 (1)内容合法。根据《中华人民共和国劳动法》第八十九条的规定:“用人单位制定的劳动规章制度违反法律、法规规定的,由劳动行政部门给予警告,责令改正;对劳动者造成损害的,应当承担赔偿责任。”《劳动保障监察条例》第十一条第一款规定:“劳动保障行政部门对下列事项实施劳动保障监察: (一)用人单位制定内部劳动保障规章制度的情况。”关于实施《劳动保障监察条例》若干规定第十六条第一款规定:“下列因用人单位违反劳动保障法律行为对劳动者造成损害,劳动者与用人单位就赔偿发生争议的,依照国家有关劳动争议处理的规定处理: (一)因用人单位制定的劳动规章制度违反法律、法规规定,对劳动者造成损害的。”这些规定都体现了用人单位制定的规章制度必须要内 容合法。(2)程序合法。程序合法指规章制度的制订必须符合法律规定的程序。《最高人民法院关于审理劳动争议案件适用法律若干问题的解释》第十九条规定:“用人单位根据《劳动法》第四条之规定,通过民主程序制定的规章制度,不违反国家法律、行政法规及政策规定,并已向劳动者公示的,可以作为人民法院审理劳动争议案件的依据。”这就决定了对于法律规定必须经过职代会或职工大会及法律规定的其他民主形式通过的规章制度还必须按法定的民主程序制定。 二是用人单位的规章制度不得违反劳动合同和集体合同的约定。劳动合同是劳动者与用人单位就劳动权利义务达成的协议,如果不违反法律、法规,一经成立就具有法律约束力。规章制度是用人单方单方面制定的,单位不能通过规章制度单方面变更劳动合同的设定,即使规章制度由职代会通过,如果与劳动合同冲突,不一致,或增加劳动者的义务,除非劳动者认可,否则无效。另外企业规章制度不得违反集体合同的约定,不能通过规章制度违反集体合同的约定。 三是用人单位的规章制度不得违反公序良俗。公序良俗是指公共秩序和善良风俗。用人单位规章制度不得违反公序良俗,否则职工可向劳动行政部门主张该规章制度无效,造成侵权的,可提起诉讼。 四是用人单位的规章制度必须向劳动者公示。《中华人民共和国劳动合同法》第四条第二款规定:“用人单位在制定、修改或者决定有关劳动报酬、工作时间、休息休假、劳动安全卫生、保险福利、职工培训、劳动纪律以及劳动定额管理等直接涉及劳动者切身利益的规章制度或者重大事项时,应当经职工代表大会或者全体职工讨论,提出方案和意见,与工会或者职工代表平等协商确定。”公示原则是现代法律法规生效的一个要件,作为企业内部的规章制度更应对其适用的人必须公示,未经公示的企业内部规章制度,职工无所适从,对职工不具有约束力。 据中国之声《新闻晚高峰》近日报道,银监会副主席阎庆民在“北大经济国富论坛”上表示,银监会正在酝酿加快推出银行破产条例,一石激起千层浪。 以前,针对国内的商业银行谈“破产”,几乎是不可想象的事情。就是到了2008年全球金融危机之后,银行破产仿佛也只是欧美国家在面临的难题。 不过最近,这样一个词汇成了国内金融界的热门话题。银监会1月6日召开2014年全国银行业监管工作会议,会上表示,今年将扩大银行业对内对外开放,试办由纯民资发起设立自担风险的银行,试点先行,首批试点3至5家,成熟一家批设一家。 对此,斥巨资投资了中国第一家民营银行—民生银行的史玉柱赶紧发微博说:现在发起民营银行没啥意思。 理由如下: 1、即将新批的民营银行,都不是全牌照银行,业务范围被控制得很窄。此银行非彼银行; 2、运营地域被限制的很小; 3、新银行需要经历3-5年的亏损,净资产会大幅缩水; 4、新办银行的核心团队至少需要三年的磨合才有战斗力; 5、互联网银行除外。 有没有意思,这是银行家担心的事。而老百姓应该关注的重点,是银行要“自担风险”了。 如果有银行破产了,储户的存款是否会血本无归?银行市场化,老百姓的钱靠谁来保障? 最大赔付额度可能是50万元 阎庆民表示,“未来要让市场说话、让资本说话,如果商业银行最后资不抵债,就会退出。” 什么意思呢?通俗理解就是,国家不再为储户在商业银行的存款兜底,允许银行破产倒闭,一旦有银行破产,储户的存款将由存款保险机构赔偿,但赔偿有一定限额。根据目前透露的消息,储户在单个银行的存款,最大赔付额度可能是50万元,超过这一限额的存款部分,将得不到赔偿。 按照央行计划的50万元限额,实行存款保险制度之后,假如储户在单一银行的存款不高于50万元,万一银行破产倒闭,储户将获得与实际存款金额相等的全额赔偿;如果存款超过50万元,则最多获赔50万元,超出部分或者不能获得赔付,或者像美国和中国台湾一样,按一定比例赔付。 此外,限额保险赔付金额究竟是包括本金和利息在内,还是只赔付本金,目前尚无明确信息。 杭州某国有银行理财经理说,建立存款保险制度,储户一定要做好两个转变,一是观念转变,不能再迷信银行不会倒闭了,要有风险意识,把银行当作一般企业来看待,经营得不好,一样会关门。二是储蓄方式转变,大额存款尽量分开存放,也就是鸡蛋要放在不同的篮子里。这样万一一家银行发生风险,也不至于损失过大。 只赔存款,不赔理财产品;只赔个人,不赔企业 所谓存款保险制度,是指银行等存款类金融机构按照一定比例标准向特定机构缴纳一定保险金,当自身发生危机时(如兑付风险、破产等),由存款保险机构通过资金援助等方式来保障其清偿能力的一项制度。在这一制度下,一旦银行发生破产倒闭等事件,储户存放在银行的资金不至于颗粒无收。 存款保险制度并不是新生事物。1929-1932年的金融危机中,美国先后有近万家商业银行受冲击倒闭,存款人损失严重。1933年,美国通过《银行法》,据此设立了联邦存款保险公司,为已投保银行和储蓄机构的存款人提供保护,目前为大多数存款账户提供10万美元全额保险,部分退休账户达到25万美元,超出限额的按比例赔付。 在2008年的金融危机中,美国有数十家商业银行轰然倒下,如果没有存款保险公司“兜底”,必定引发更大的恐慌。目前,在金融稳定理事会的24个成员国(地区)中,只有南非、沙特阿拉伯和中国没有建立。 在我国,国家一直作为金融机构的最后担保人,实行的是隐性存款保险制度,这也是老百姓对银行有天然信任感的原因所在。但这并不代表金融机构就不存在经营危机,1998年,受亚洲金融危机冲击,海南发展银行因严重支付能力不足而关闭,境内居民在该银行的储蓄存款本金及合法利息,最后由人民银行指定工商银行保证支付。此后发生在河北省肃宁县的尚村农信社破产案,最后同样由央行指定其他商业银行予以救济。 在存款保险制度下,金融机构将自身兑付风险转嫁给存款保险机构,必须支付一定的保险金。 值得注意的是,存款保险制度在全球通行的一个做法是,只对自然人存款承担赔付责任,企业存款不在赔付范畴之内。并且,随保对象是储户的各类存款,但不包括在银行购买的理财产品或其他投资产品。 文章来源于天天基金网,转载请注明来源。第二篇:数据结构课程设计二叉树平衡的判定
第三篇:如何判定纯外文标签的食品是否为进口食品
第四篇:如何判定用人单位规章制度是否有效?
第五篇:“银行破产”,是否为真?