DS二叉排序樹之刪除

2021-09-02 01:28:47 字數 1150 閱讀 1518

給出乙個資料序列,建立二叉排序樹,並實現刪除功能

對二叉排序樹進行中序遍歷,可以得到有序的資料序列

第一行輸入t,表示有t個資料序列

第二行輸入n,表示首個序列包含n個資料

第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開

第四行輸入m,表示要刪除m個資料

從第五行起,輸入m行,每行乙個要刪除的資料,都是自然數

以此類推輸入下乙個示例

第一行輸出有序的資料序列,對二叉排序樹進行中序遍歷可以得到

從第二行起,輸出刪除第m個資料後的有序序列,輸出m行

以此類推輸出下乙個示例的結果

22 33 55 66 11 44

11 22 33 44 55 66

11 22 33 44 55

11 33 44 55

11 33 44 55

當刪除資料不在序列中,那麼刪除操作等於不執行,所以輸出序列不變化

#includeusing namespace std;

class node

};void addtree(int shu, node* root)

else

}else

else

root= root->right;}}

}int findnode(int shu, node* root)

else if(!root->left)

else if(!root->right)

else

root->data= s->data;

if(no!= root)

else

delete s;

}return times;

}if(shu< root->data)

else

}return -1;

}void printtree(node* &root)

}int main()

else

}int in;

node* root= root;

printtree(root);

cout<>in;

while(in--)

}return 0;

}

DS二叉排序樹之查詢

題目描述 給出乙個資料序列,建立二叉排序樹,並實現查詢功能 對二叉排序樹進行中序遍歷,可以得到有序的資料序列 輸入第一行輸入t,表示有t個資料序列 第二行輸入n,表示首個序列包含n個資料 第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開 第四行輸入m,表示要查詢m個資料 從第五行起,輸入...

DS二叉排序樹之查詢

題目描述 給出乙個資料序列,建立二叉排序樹,並實現查詢功能 對二叉排序樹進行中序遍歷,可以得到有序的資料序列 輸入 第一行輸入t,表示有t個資料序列 第二行輸入n,表示首個序列包含n個資料 第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開 第四行輸入m,表示要查詢m個資料 從第五行起,輸...

二叉排序樹刪除

二叉排序樹的刪除情況比較複雜,有以下三種情況需要考慮 第一種情況 刪除葉子節點 思路 第二種情況 刪除只有一棵子樹的節點,比如1 思路 如果targetnode有右子節點 第三種情況 刪除有兩棵子樹的節點 比如 7,3,10 思路 public class binarysorttreedemo bi...