原创 數據結構與算法--二叉排序樹(C++實現)

目錄前言二叉樹上的操作數據結構和算法描述節點算法描述遍歷搜索插入刪除查找最大節點查找最小節點類的定義程序說明和清單小結附 前言 這裏的二叉樹是指二叉排序樹。二叉樹也是常用的數據結構。一棵二叉樹由根節點(可以爲空)和左右子樹(也是二

原创 數據結構與算法--用單向鏈表實現棧(C++實現)

目錄前言棧的操作數據結構和算法描述節點的結構算法描述類的定義程序清單及說明小結附 前言 棧是基本的數據結構。其特點是添加和刪除(訪問)數據都在線性表的一端(頭端)。數據訪問遵循後進先出(LIFO)的原則。棧一般用數組或者鏈表來實現

原创 數據結構與算法--單向有序鏈表(C++實現)

目錄前言鏈表的操作數據結構和算法描述節點的結構算法描述插入節點刪除節點查找遍歷類的定義程序清單附 前言 線性表是基本的數據結構。一般有數組和鏈表兩種常用實現形式。本文用C++實現有序鏈表。是C++、數據結構及算法學習的一個小練習。

原创 有趣的素數(附C++源碼)

目錄前言篩法求 n 以內的素數幾個有趣的想法程序說明實驗結果及問題探討 前言 素數問題可能是數論中最引人入勝的課題了。最著名的莫如“哥德巴赫猜想”。幾乎小學生都可以明白它的意思。但是窮盡世界上最聰明的腦袋,迄今爲止都無人能夠證明它

原创 一個演奏樂曲的趣味小程序

今年4月24日,是我國發射第一顆人造地球衛星——“東方紅1號”,50週年的紀念日。讀了許多紀念文章,耳邊彷彿就響起“東方紅”的樂曲。忽然想起多年前寫過一個演奏樂曲的小程序,它讀取經過簡單翻譯的簡譜,然後利用PC機的揚聲器演奏出樂曲

原创 C++實現三維空間中點到點、點到直線、點到平面的距離計算

在空間解釋幾何中,點到點、點到直線、點到平面的距離是基本的計算。計算公式也有多種推導方法(詳細參見任何線性代數教材或維基百科)。本文運用向量的內積(點乘)、外積(叉乘)來計算這三個距離。 向量的模用向量自身的內積的平方根定義。 ||v

原创 C++實現多邊形面積的計算

多邊形面積的計算一般是將其剖分爲三角形,利用海倫公式計算每個三角形的面積,然後將所有三角形的面積加起來。但是,這種方法程序實現起來比較複雜,因爲無法預知多邊形的形狀,需要判斷多邊形的“凸凹”,從而避免重複計算。本文采用向量的叉乘的方法,不

原创 C++實現三維空間中直線間距離的計算

三維歐幾里得空間中,直線的關係爲:相交、平行和異面直線三種情況。設點A、B決定了直線L1L1 ,點C、D決定了直線L2L2 。求直線L1L1 和L2L2 間的距離可以用以下方法實現。 令直線L1L1 的向量方程:x=a+λb,(a、b、x