設有一棵二叉樹,其節點值為字元型並假設各值互不相等,採用二叉鍊錶儲存表示。現輸入其擴充套件二叉樹的前序遍歷序列,要求編寫乙個演算法交換二叉樹中所有節點的左右子樹,並輸出交換後的前序遍歷。
輸入的第一行為乙個整數n,表示接下來有n組資料。
接下來n組,每組佔一行,每行包含乙個擴充套件二叉樹的前序遍歷
對於每組資料,若二叉樹不為空,輸出交換完左右子樹後的前序遍歷,每組輸出佔一行;否則,不輸出任何資訊。
2ab#d##c##
abd##e##c#f##
acbdacfbed
#include#includeusing namespace std;
struct binode
};class tree
void delete(char x,int flag)
void preoder()else
return bt;
}void exchange(binode* &bt)
}void release(binode *bt)
}int delete(char x,int flag,binode*& bt)
if(bt->data==x)
int left=delete(x,flag,bt->l);
int right=delete(x,flag,bt->r);
if(flag==1)
delete bt;
}else
if(right==1)
}return 0;
}void preoder(binode *bt)
}};int main()
}return 0;
}
二叉樹的操作(交換左右子樹)
問題描述 二叉樹按照二叉鍊錶的方式儲存。編寫程式,計算二叉樹中葉子結點的數目並輸出 編寫程式,將二叉樹的左右子樹進行交換,並輸出交換後的二叉樹的後序遍歷序列。輸入形式 二叉樹的前序遍歷序列,空指標的位置輸入字元 輸出形式 葉子結點的數目 左右子樹交換後,後序遍歷的序列,空子樹的位置輸出字元 樣例輸入...
西電資料結構上機題 交換左右子樹
遞迴思路比較簡單 演算法暴力,不斷迭代 一句話說清算法思想 只要沒有後代,往下交換就完事了 交換左右子樹的程式 include include 二叉鍊錶的結構型別定義 const int maxsize 1024 typedef char datatype typedef struct node b...
將二叉樹的所有結點的左右子樹交換
核心 將結點的左右子樹交換 void swap btnode root void treeswap btnode root 驗證 include include include include include define maxsize 100 typedef char elementtype t...