1樓:飄逸且清新丶國寶
下面是c++的**。 主要是一個遞迴的思維。收好都是我自己寫的,能用
//bintree.h 定義
struct node
;class bintree
;//bintree.cpp
// bintree.cpp: implementation of the bintree class.
#include "bintree.h"
bintree::bintree() //無參建構函式
bintree::bintree(char pre)
//根據先序序列中序序列 建立二叉樹
bintree::bintree(char pre, char mid, int n)
//先序序列: pre[ipre]...pre[ipre+n-1]
//中序序列: mid[imid]...mid[imid+n-1]
node *bintree::createbypremid(char pre, int ipre, char mid, int imid, int n)
bintree::~bintree()
{}void bintree::preorder()
void bintree::preorder(node *p)
void bintree::midorder()
void bintree::midorder(node *p)
void bintree::postorder()
void bintree::postorder(node *p)
//深度,即二叉樹的高度
int bintree::depth()
int bintree::depth(node *p)
//查詢值x的節點
node * bintree::search(int x)
node * bintree::search(node *p, int x)
//所有節點個數
int bintree::count()
int bintree::count(node *p)
//所有葉子節點的個數
int bintree::leafcount()
int bintree::leafcount(node *p)
2樓:拓跋飆
class treenode
二叉樹的題目普遍可以用遞迴和迭代的方式來解1. 求二叉樹的最大深度
int maxdeath(treenode node)int left = maxdeath(node.left);
int right = maxdeath(node.right);
return math.max(left,right) + 1;
}2. 求二叉樹的最小深度
int getmindepth(treenode root)return getmin(root);
return math.min(getmin(root.left),getmin(root.right)) + 1;
}3. 求二叉樹中節點的個數
int numoftreenode(treenode root)int left = numoftreenode(root.left);
int right = numoftreenode(ro
資料結構中的二叉樹題目,求大神幫忙做下,謝謝! 80
3樓:在天池寺講印第安語的李逍遙
設二叉樹bt的一種儲存結構如表所示。其中,bt為樹根結點指標,lchild、rchild分別為結點的左、右孩子指標域,使用結點編號作為指標域值,0表示指標域值為空;data為結點的資料域。請完成:
(1)畫出二叉樹bt的樹形表示。(2)寫出按先序、中序和後序遍歷二叉樹bt所得到的結點序列。
4樓:
這好像是學校才有這種基礎的題目吧,自己去完成啦
5樓:末末去
先序遍歷abcedfhgij
中序遍歷ecbhfdjiga
後序遍歷echfjigdba
6樓:卓憶靈
我有的,戳頭像哦。~~!
資料結構 樹與二叉樹題目 求解
7樓:雙子杜旭東
3全部左右子樹為空。
一棵樹 t 採用二叉連結串列 bt 儲存, 如果樹 t 中某結點為葉子結點, 則在二叉連結串列 bt 中所對應的結點一定滿足左右子樹為空 。
8樓:
可以填左右孩子指標均為空
9樓:匿名使用者
指向左右子節點的指標均為空唄
[資料結構]二叉樹題
10樓:弓疏惠
有先序可在,樹根為e;此時由中序可知,做子樹節點hfi,右子樹節點jkg有先序fhi和中序hfi可知,左子樹根為f,f兩邊的h和i分別為其左孩子和有孩子,所以左子樹為fh i 同理,右子樹為:gjk此二叉樹為ef gh i jk
求資料結構(j**a版)實驗樹和二叉樹題目答案
11樓:六孔
/*** @param args
之前在大學的時候寫的一個二叉樹演算法,執行應該沒有問題,就看適不適合你的專案了 */
public static void main(string args)}
資料結構的二叉樹實驗
資料結構、樹、中序遍歷序列畫圖題目
12樓:a綦子
我說下思路吧
1、先觀察中序遍歷第一個元素a,它應該是整棵樹中最左的節點;
2、再觀察後序遍歷最後一個元素(也是a),他是整棵樹中最中間的節點;
3、結合上述兩點,可以確定a是樹的根節點,而且,這棵樹沒有左子樹;
4、接下來觀察後序遍歷中的b,他在後序遍歷中是a之前的元素,而且結合這棵樹沒有左子樹這一 點,可以確定,b是a的直接右孩子;
5、確定了a、b的位置後,可以觀察中序遍歷樹,a和b之間有ehcf,這就證明了ehcf都是b的左子孫,只要確定ehcf之間的位置關係就可以把它連結上b了;(第6步會說明)
6、為了確定ehcf的相對位置關係,我們先觀察中序遍歷中,他們的順序是ehcf,而後序遍歷中他們是hefc,經過幾次嘗試後,很容易就會發現正確的相對位置了;
7、剩下的igd也可以按理推斷出來
打字畫圖好辛苦,望採納
13樓:
1、先觀察中序遍歷第一個元素a,它應該是整棵樹中最左的節點;
2、再觀察後序遍歷最後一個元素(也是a),他是整棵樹中最中間的節點;
3、結合上述兩點,可以確定a是樹的根節點,而且,這棵樹沒有左子樹;
4、接下來觀察後序遍歷中的b,他在後序遍歷中是a之前的元素,而且結合這棵樹沒有左子樹這一 點,可以確定,b是a的直接右孩子;
5、確定了a、b的位置後,可以觀察中序遍歷樹,a和b之間有ehcf,這就證明了ehcf都是b的左子孫,只要確定ehcf之間的位置關係就可以把它連結上b了;(第6步會說明)
6、為了確定ehcf的相對位置關係,我們先觀察中序遍歷中,他們的順序是ehcf,而後序遍歷中他們是hefc,經過幾次嘗試後,很容易就會發現正確的相對位置了;
7、剩下的igd也可以按理推斷出來
14樓:匿名使用者
畫的比較粗糙,如果需要整齊點的,可以用visio重新畫一遍。
資料結構題目
15樓:
1(1):連結串列,理由是連結串列能夠高效的執行插入刪除操作,適用於元素變化較多的情形
1(2):順序表,不方便插入刪除,但能高效的讀取線性表中的元素
2: 連結串列可以克服弱點一,只需要改相鄰指標,不需要移動元素;可以克服弱點二,控制元件動態分配;可以克服弱點三,連結串列方便擴充
3: 答過了
4: 4 3 5 6 1 2 不行,1234入棧43出棧5入棧5出棧6入棧6出棧12反序
1 3 5 4 2 6 可以,1入棧1出棧23入棧3出棧45入棧54出棧2出棧6入棧6出棧
5: 答過了
6: 見圖
7: 見圖
8: 這棵樹除葉以外的所有節點都只有右節點,像一捺的感覺,退化成線性表
9: 沒圖
10:就是插入排序,只是插入的過程在查詢插入位置的時候用二分法。
資料結構樹和二叉樹的實際應用,資料結構中,怎麼樣才能學好二叉樹, 與實際程式設計中有什麼用
資料結構樹和二叉樹的實際應用 哈夫曼編碼。利用哈夫曼編碼進行通訊可以大大提高通道的利用率,縮簡訊息傳輸的時間,降低傳輸成本。根據哈夫曼編碼的原理,編寫一個程式,在使用者輸入結點權值的基礎上求哈夫曼編碼。從鍵盤輸入若干字元及每個字元出現的頻率,將字元出現的頻率作為結點的權值,建立哈夫曼樹,求出各字元的...
二叉樹的問題,二叉樹問題
二叉樹就是僅有兩個分支,而且左右分支位置不能交換的樹型結構。a b c d e 這就是一個簡單的二叉樹。所謂中序遍歷就是指訪問二叉樹時先訪問左孩子,接著訪問它的雙親,最後訪問右孩子的一種遍歷方法。有一個資料結構的學習網頁,不錯。還有動畫配合理解。二叉樹問題 50 二叉樹問題 先解釋為什麼d對,因為二...
滿二叉樹和完全二叉樹的區別
滿二叉樹 除了葉結點外每一個結點都有左右子女且葉結點都處在最底層的二叉樹,這個似乎很好想像出來 完全二叉樹 只有最下面的兩層結點度小於2,並且最下面一層的結點都集中在該層最左邊的若干位置的二叉樹 這個,就說從滿二叉樹裡,最下一層的葉子,如果是從右往左拿掉葉子,不論多少,都是完全的,如果不是從右往左拿...