/*編寫演算法交換二叉樹中所有節點的左右子樹*/
#include"stdio.h"
#include"malloc.h"
#define maxsize 10//節點個數
typedef struct nodebitree;
/*奈蕎無音:鳴人的兒子博人問鳴人:「爸爸,你年輕的時候幹了什麼偉大的事啊?」鳴人摸了摸他的頭,然後說:「我用了十五年,幫我曾經最喜歡的女生追回了她的丈夫。」
博人又問:「那媽媽呢?」鳴人眼裡光線都溫柔了,「媽媽堅持愛到了我愛她的那一天。」*/
//建立二叉樹
bitree *q[maxsize];
bitree *creattree()
rear++;
q[rear]=s;
if(rear==1) t=s;
else
ch=getchar();
}return t;
}//先序遍歷二叉樹
void preorder(bitree *t)
} //交換左右子樹
void *swap(bitree *t)
}int main()
實驗三 果子合併(二叉樹)
問題描述 n堆果子,每堆果子數量任意,試設計一種最佳方案,將這n堆果子合併為一堆,使得合併工作量最小。注 規定合併兩堆果子的工作量是這兩堆果子的數量之和。標準輸入 m,n m表示m組測試資料,n表示每組測試資料數量不超過n個,每堆果子數量不超過10000。隨後的m行是測試資料。標準輸出 m行資料表示...
(二叉樹提高題)還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...
二叉樹(三) 線索二叉樹
對於具有n個結點的二叉樹,二叉鍊錶中空的指標域數目為n 1,如下圖 注 n 1 的推導過程如下 2 n n 1 n 1 利用二叉鍊錶中空的指標域指出結點在某種遍歷序列中的直接前驅或直接後繼。指向前驅和後繼的指標稱為線索,加了線索的二叉樹稱為線索二叉樹。利用鏈結點的空的左指標域存放該結點的直接前驅的位...