耽擱了好長時間,今天終於把問題解決了。
之前沒有完成 查詢父結點的功能 在同學幫助下找到了原因。
首先,是兩個我的錯誤想法,應該是
1.樹的乙個結點的值為null,表示這個節點不存在,或者是乙個空節點,沒有左、右子樹,沒有資料,什麼都沒有
2.兩個結點相等,必須是資料、左右子樹都一樣才可以,只有資料相等是不可以的
之前已經說了,總是找不到父結點,是因為我比較的一直是兩個結點是否相等,而不是兩個結點的資料相等,這樣當然找不到了
這次修改就是把原來的比較結點換成了比較節點的資料,加了一層if來控制一種特殊情況:如果某個結點的左子結點為空,卻去讓它的左子結點的資料賦給某個變數
原來的**就不貼了,貼一下更改的尋找父結點的函式:
bintreenode* bintree::father(bintreenode *t, bintreenode *p)
好的,就是這樣。 二叉樹 排序二叉樹的簡單實現
二叉樹 排序二叉樹 include using namespace std 二叉樹的節點 date 資料 left 指向二叉樹的左子樹 right 指向二叉樹的右子樹 template struct node template class btree public btree root null c...
二叉樹的簡單實現
本篇博文主要關注c 資料結構二叉樹的簡單實現,主要實現二叉樹類的構建,包括二叉樹的構造 拷貝構造 析構函式 賦值運算子的過載 前序中序後序層序遍歷二叉樹 查詢指定節點 查詢節點的總個數等功能函式,主要依靠遞迴演算法完成。樹的結點型別主要是根結點,指向右孩子的指標和指向左孩子的指標。下面是結點的建構函...
C 實現簡單二叉樹
二叉樹是重要的資料結構,這裡用c 簡單實現,暫時不考慮其增加 刪除和修改。二叉樹在底層其實就是用陣列儲存,可以用陣列實現二叉樹 首先建立乙個結構體,在其中儲存指標以及資料,這個結構體作為二叉樹的節點使用 template t struct binarytreenode 定義節點 然後就可以利用陣列建...