poj2418 二叉排序樹

2021-06-21 01:05:49 字數 971 閱讀 9259

/**

* poj2418 二叉排序樹

* 這道題目可以用二叉排序樹來做,也可以用map來做,為了學習,這裡我就用了二叉排序樹的做法

* 點1:在讀取字串的時候,可以使用下面使用的正則方法,%開啟正則,指定讀取資料的格式,^\n指讀取\n之前的資料,即一行,30是指讀取的最大長度

* 而另一種方法則是使用gets(tree_name)函式,直接讀取一行,更為簡潔

* 點2:二叉排序樹的使用

* 插入時,將鍵值(字串)從樹根開始自上而下比較,如果比葉子小,就繼續跟左子樹根比較,否則跟右子樹根比較,直到進入了某個葉子節點,將新節點放置在該位置即可

* 遍歷時使用中序遍歷,先遍歷左子樹,然後顯示樹根,然後遍歷右子樹

* 由於本題的特殊性,那麼如果某次比較結果相等,那就可以中止比較,增加計數就可以了

*/#include #include #include #include #include using namespace std;

const int max_num = 10001;

struct node

};void insert(node*& root,char* s)

node *self=root,*father=root;

int cmpres;

while(self!=null)

father = self;

self = (cmpres > 0)? father->rchild : father->lchild;

}self = new node(s);

if(cmpres > 0)

else if(cmpres < 0)

}void print(const node* p,const int count)

}int main()

print(root,count);

return 0;

}

輸出二叉查詢樹poj 2418 二叉查詢樹

改章節朋友在深圳遊玩的時候突然想到的.近期就有想寫幾篇關於輸出二叉查詢樹的文章,所以回家到之後就奮筆疾書的寫出來發布了 二叉查詢樹 對於樹中的個每節點x,它的左子樹中的全部節點的值小於x的值,它的右子樹中的全部節點的值大於x的值 目題粗心 給出一些單詞 包括大小寫和格空 單詞可以重複湧現 單詞最多1...

二叉排序樹

在複習資料結構,把這個東西總結一下。這種結構是動態查詢表,這種動態是相對靜態查詢 順序查詢,折半查詢,分塊查詢等 來說的。對於各種靜態鍊錶,要達到查詢複雜度為o logn 必須要求有序 而要使插入刪除複雜度為o 1 必須是鍊錶儲存。動態查詢表就可以同時滿足這兩者。動態查詢表的特點是表結構本身在查詢過...

二叉排序樹

name 二叉排序樹相關操作 author unimen date 2011 10 8 13 14 21 刪除結點比較麻煩,總結如下 4大種情況 1 結點p無右孩子 將該點的左孩子變為其在雙親中的同位孩子 1 p為其雙親的左孩子時將其的左孩子變為雙親的左孩子 2 p為其雙親的右孩子時將其的左孩子變為...