資料結構中,怎樣以二叉連結串列為儲存結構,分別寫出求二叉樹結點總數及葉子總數的演算法

2021-06-14 08:02:46 字數 2360 閱讀 7238

1樓:匿名使用者

同學,你們老師和我們老師留的作業是一模一樣的阿,我有現成的做好了的程式,除錯成功。這個程式的難點就在於這種很彆扭的輸入形式,所以我為它設計了一個結構體形式存放輸入內容,再將它轉化成了線性結構。

#include

#include

struct inform /*建立輸入資訊結構體inform*/

;struct leafnode /*建立葉子節點結構體*/

;void print(inform* ps, int n);

void judge ( inform* ps );

leafnode* creatree(); /*宣告二叉樹的建立函式*/

void preorder (leafnode* t); /*宣告先序遍歷函式*/

void inorder (leafnode* t); /*宣告中序遍歷函式*/

void postorder (leafnode* t); /*宣告後序遍歷函式*/

char a[100];

int k=1;

int s=0;

inform *p;

void main()

a[0]= p->data;

judge ( p1 ); /*用遞迴演算法將輸入資料資訊轉為線性字串*/

cout

else

if ((ps->signr) == 0)

else

}leafnode* creatree() /*建立二叉樹函式*/

else

return t;

} /*先序遍歷的遞迴函式*/

void preorder (leafnode* t)

}/*中序遍歷的遞迴函式*/

void inorder (leafnode* t)

}/*後序遍歷的遞迴函式*/

void postorder (leafnode* t)}

2樓:易xiao萱

//求葉子節點數

#include

using namespace std;

int n=0;//全域性變數求葉子總數

template

struct binode

;template

class bitree

int preorder()

private:

binode*root;

int count;

binode*creat(binode*bt);

int preorder(binode*bt);

};template

int bitree::preorder(binode*bt)return n;

}template

binode*bitree::creat(binode*bt)return bt;

}int main()

;template

class bitree

int preorder()

private:

binode*root;

int count;

binode*creat(binode*bt);

int preorder(binode*bt);

};template

int bitree::preorder(binode*bt)return n;

}template

binode*bitree::creat(binode*bt)return bt;

}int main()

3樓:蔡成棟

先設計了一個結構體形式int n; cout<<"請輸入二叉樹內容:第一行為節點總數n ,後面的n行是節點,謝謝

4樓:匿名使用者

int countnode (btnode *t) //節點總數

void countleaf (btnode *t) //葉子節點總數}

5樓:匿名使用者

int jiedian(btnode *b)//節點總數

int yezi(btnode *b)//葉子總數

【資料結構】求二叉樹中葉子結點個數的演算法或求二叉樹中結點個數的演算法

6樓:匿名使用者

返回bai葉du

子結zhi點dao個數專

:屬int getyeatnodenumber(treenode *root)

資料結構C 版,請問順序儲存的二叉樹怎樣實現所有左右子樹交

交換子樹只需要交換指標即可,但為了確保精確查詢,最好重建新樹 資料結構與演算法 二叉樹交換左右子樹演算法 傳入樹的根結點即可 exchangelr root root為樹的根節點 void exchangelr treenode root 原來節點結構體抄 typedef struct node 現...

二叉樹T採用二叉連結串列作儲存結構,試設計演算法計算二叉樹中度為1的結點數

int numofone binode p else if p rchild null p lchild null return count int num 編寫一個遞迴演算法,計算二叉樹中度為1的結點數目 int degrees1 bitnode t 不用遞迴,數一下有多少個葉子節點就可以了 這不...

資料結構二叉樹,已知中序遍歷後序遍歷,如何求先序遍歷

preorder遍歷 訪問根節點的操作發生在遍歷左和右子樹之前。中間順序遍歷 訪問根節點的操作發生在左邊和右邊的子樹中。順序遍歷 訪問根節點的操作發生在遍歷左邊和右邊的子樹之後。解決方案 首先,看到後序遍歷dbcefgha,a是總根節點。然後發現中間順序遍歷a在edcbahfg中的位置,然後在a的左...