国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

二叉查找樹 POJ Falling Leaves

2019-11-08 03:06:56
字體:
來源:轉載
供稿:網友

原題描述(我的翻譯版): 這里寫圖片描述 圖1顯示了字母二叉樹的圖形表示。熟悉字母二叉樹概念的人可以跳過接下來的定義,切入正題。 字母二叉樹滿足下面兩條之一: 1. 它可以是空樹, 2. 它可以有一個根節點,該節點以;一個字母作為數據并且指向左子樹和右子樹。左子樹和右子樹也是字母二叉樹。 在字母二叉樹的圖形表示中: 1. 空樹完全省略 2. 每一個節點都代表: 一個字母, 左子樹不為空將該節點和左子樹相連, 右子樹不為空將該節點和右子樹相連, 葉子節點就是左右子樹為空的節點。圖1中的B, D, H, P和Y為葉子節點。 問題: 在字母二叉查找樹上考慮以下操作順序: 刪除葉子節點,并列出數據刪除, 重復這個過程直到樹為空, 從樹的左下方開始,我們產生樹的顯示序列,然后通過刪除數據的葉子節點使得樹為空。

節點刪除如下: BDHPY CM GQ K 給個圖: 這里寫圖片描述 你的問題是通過這些序列,輸出原樹的先序遍歷。 輸入: 輸入將包含一個或多個數據集。每個數據集是一行或多行大寫字母的序列。 該行包含在上述階段中從二叉搜索樹中移除的葉子節點。一行的字母將按字母順序排列。數據集是由一行只有一個星號(“*”)分離。 最后一個數據集后面是一行只包含一個美元的符號($)。輸入中沒有空格或空行。 輸出: 對于每個輸入數據集,有一個唯一的二叉搜索樹對應產生的葉子節點的序列。輸出一行即那棵樹的先序遍歷,不能有空格。 輸入樣例: BDHPY CM GQ K * AC B

$ 輸出樣例: KGCBDHQMPY BAC 大意是讓我們對每一個數據集建立一個二叉樹,這個二叉樹是很特殊的,它是一個二叉查找樹(觀察左右子樹與根結點的關系,左子樹比其小,右子樹大),所以我們不難寫出代碼,這個題是一道二叉查找樹的基礎例題。 代碼如下:

#include<cstdio>#include<string>#include<queue>#include<iostream>using namespace std;struct node{ char data; node* lch; node* rch;}*root;void insert(node *&root,char x){ if(root==NULL) { root=new node; root->data=x; root->lch=NULL;//一定要對左右子樹賦初值NULL root->rch=NULL; return; } if(root->data==x) return; else { if(x-'A'>root->data-'A') { insert(root->rch,x); } if(x-'A'<root->data-'A') { insert(root->lch,x); } }}void fir(node *root){ if(root==NULL) return; else {
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郴州市| 鹤岗市| 宿迁市| 页游| 梨树县| 股票| 吴川市| 临海市| 垫江县| 乌拉特中旗| 呼伦贝尔市| 三门峡市| 永仁县| 娱乐| 惠州市| 海林市| 英德市| 阜新市| 八宿县| 体育| 南昌县| 永济市| 绥德县| 米泉市| 石门县| 明星| 明水县| 昭苏县| 财经| 东辽县| 农安县| 清丰县| 兰考县| 洛南县| 天全县| 堆龙德庆县| 镇雄县| 偃师市| 鹤庆县| 肥城市| 永安市|