第一篇:判定其是否為完全二叉樹(小編推薦)
#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年,受亞洲金融危機沖擊,海南發展銀行因嚴重支付能力不足而關閉,境內居民在該銀行的儲蓄存款本金及合法利息,最后由人民銀行指定工商銀行保證支付。此后發生在河北省肅寧縣的尚村農信社破產案,最后同樣由央行指定其他商業銀行予以救濟。 在存款保險制度下,金融機構將自身兌付風險轉嫁給存款保險機構,必須支付一定的保險金。 值得注意的是,存款保險制度在全球通行的一個做法是,只對自然人存款承擔賠付責任,企業存款不在賠付范疇之內。并且,隨保對象是儲戶的各類存款,但不包括在銀行購買的理財產品或其他投資產品。 文章來源于天天基金網,轉載請注明來源。第二篇:數據結構課程設計二叉樹平衡的判定
第三篇:如何判定純外文標簽的食品是否為進口食品
第四篇:如何判定用人單位規章制度是否有效?
第五篇:“銀行破產”,是否為真?