iT邦幫忙

c/c++相關文章
共有 140 則文章
鐵人賽 Software Development DAY 24

技術 [Day 24] 用C++ 設計程式中的系統櫃:BST::traversal() Part3/3

今天要來完成第四種遍歷法:Level Order Traversal 比起前三者來說,他顯得更加直觀,因為他是按照 level 大小來輸出資料,換句話說,就是由...

鐵人賽 Software Development DAY 23

技術 [Day 23] 用C++ 設計程式中的系統櫃:BST::traversal() Part2/3

上一篇文章,我們對三種遍歷法都有一定的認識了,今天我們要練習用迴圈來實作,難度會深一點! 我們都知道在遍歷一棵樹時,會遇到無數的岔路,那你有想過要怎麼紀錄岔路嗎...

鐵人賽 Software Development DAY 22

技術 [Day 22] 用C++ 設計程式中的系統櫃:BST::traversal() Part1/3

想輸出鏈結串列其實很容易,只要找到當前節點的 next 即可找到下一個節點。有了節點,我們就可以輸出節點中的資料。這個是之前介紹過的 LinkedList::p...

鐵人賽 Software Development DAY 21

技術 [Day 21] 用C++ 設計程式中的系統櫃:BST::insert()

新增節點的方式大概可以以兩種方式來概括: 非遞迴形式:void BST::insert(int); 相對直觀 使用 while 迴圈 遞迴形式:void...

鐵人賽 Software Development DAY 20

技術 [Day 20] 用C++ 設計程式中的系統櫃:Class BST

建立一棵樹之前,我們需要先建立「樹節點」類別。 由於實作的樹為「二元搜尋樹」,所以我們稱樹節點類別為 BSTNode 定義 BSTNode 從之前的二元樹模型...

鐵人賽 Software Development DAY 19

技術 [Day 19] 用C++ 設計程式中的系統櫃:二元搜尋樹與子樹

上一篇我們介紹了「二元樹」,且我們提到「二元搜尋樹是二元樹的一種」,這篇我們要來定義何謂二元搜尋樹! 定義「二元搜尋樹」 如果根節點 root 存在左子節點...

鐵人賽 Software Development DAY 18

技術 [Day 18] 用C++ 設計程式中的系統櫃:樹的概論

樹(Tree) vs. 圖(Graph) 一個資料結構,如果他是沒有「循環」 (Cycle) 在內的,那他可以被拉成「樹」 如果存在「循環」在內,那他就叫「圖」...

鐵人賽 Software Development DAY 17

技術 [Day 17] 用C++ 設計程式中的系統櫃:linkedList::reverse()

今天,我們來解決一個問題吧! 給定一個遞增的鏈結串列,回傳一個遞減的鏈結串列。 其實,這個問題有兩個解決方法! 將原本鏈結串列的數值儲存於陣列中,再將它們以遞...

鐵人賽 Software Development DAY 16

技術 [Day 16] 用C++ 設計程式中的系統櫃:linkedList::remove()

實作一下 linkedList::remove() 吧! 這個類別的功用是:給定一個目標值,從鏈結串列移除包含目標值的節點。 定義類別 class SLL {...

鐵人賽 Software Development DAY 15

技術 [Day 15] 用C++ 設計程式中的系統櫃:linkedList::insert()

如果鏈結串列只能從頭或尾新增節點是不是顯得有點無聊呢? 這篇我們就要來介紹如何從中間新增資料,使得所有資料遞增排序。 定義類別 class SLL { pri...

鐵人賽 Software Development DAY 14

技術 [Day 14] 用C++ 設計程式中的系統櫃:Queue with Linked List

上一篇,介紹了「堆疊」,這篇我們來介紹「佇列 Queue」! 他們的性質其實非常相似,我們來看看吧! 佇列 Queue 佇列是一個「先進先出」的資料結構。什麼...

鐵人賽 Software Development DAY 13

技術 [Day 13] 用C++ 設計程式中的系統櫃:Stack with Linked List

介紹完了四種基本增刪節點的類別方法,現在我們要將他們加以應用。今天的目標是實作一個「堆疊 Stack」! 堆疊 Stack 堆疊是一個「後進先出」的資料結構。什...

鐵人賽 Software Development DAY 12

技術 [Day 12] 用C++ 設計程式中的系統櫃:linkedList::popBack()

今天我們要完成最後一個基本增減節點的類別方法:linkedList::popBack() 與上一篇相同的是我們可以來看看單雙向鏈結串列的差異。 定義類別 cl...

鐵人賽 Software Development DAY 11

技術 [Day 11] 用C++ 設計程式中的系統櫃:linkedList::pushBack()

有了 linkedList::pushFront() 我們也需要一個 linkedList::pushBack()。從這個類別方法中,我們可以很明顯的發覺「單向...

鐵人賽 Software Development DAY 10

技術 [Day 10] 用C++ 設計程式中的系統櫃:linkedList::popFront()

有了新增節點的類別方法,總該有一個刪除節點的類別方法吧! 刪除節點的方式有很多種,我們就從最簡單的刪除鏈結串列頭部節點開始。 定義類別 class SLL {...

鐵人賽 Software Development DAY 9

技術 [Day 09] 用C++ 設計程式中的系統櫃:linkedList::printAll()

如果我們的物件沒有隨機存取的功能,那該如何取得鏈結串列的內容? 目前來說,我們所擁有的類別屬性只有指標 head ( 和指標 tail),因此從這裡下手絕對是正...

鐵人賽 Software Development DAY 8

技術 [Day 08] 用C++ 設計程式中的系統櫃:linkedList::pushFront()

在做任何事情之前,我們要先建立一個鏈結串列的物件。 int main() { SLL *sll = new SLL; DLL *dll = ne...

技術 <<Lower Bound-STL>> _HakerRank_C++_STL

#include &lt;cmath&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; #include...

技術 <<Maps-STL>> _HakerRank_C++_STL

#include &lt;cmath&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; #include...

鐵人賽 Software Development DAY 6

技術 [Day 06] 用C++ 設計程式中的系統櫃:鏈結串列概論

鏈結串列可以讓你更加認識指標的使用。 我認為這是精進自己指標能力的開始,包括「取值」、「取址」、「動態配置記憶體」。 鏈結串列 鏈結串列又可以簡單分成「單向鏈...

鐵人賽 Software Development DAY 5

技術 [Day 05] 用C++ 設計程式中的系統櫃:神奇的箭號

學習物件導向時,你一定常常看到 . 這個符號。 當物件導向遇到指標時,你又一定看過 -&gt; 這個符號! 許多人常常把 -&gt; 與 . 混淆,不知該用哪個...

鐵人賽 Software Development DAY 4

技術 [Day 04] 用C++ 設計程式中的系統櫃:動態配置記憶體

解決上一篇的兩個問題之前,我們先來認識動態記憶體吧! 動態配置的記憶體 特色: 動態記憶體由程式設計師來配置。換句話說,就是在執行程式時,才會配置記憶體。...

鐵人賽 Software Development DAY 3

技術 [Day 03] 用C++ 設計程式中的系統櫃:動態配置記憶體(前傳)

既然有動態配置記憶體,那麼有靜態配置的記憶體嗎? 當然有喔! 靜態配置的記憶體 在 C++ 中,什麼時候會用到靜態配置記憶體,我只能說是大多時候喔! // 靜...

鐵人賽 Software Development DAY 2

技術 [Day 02] 用C++ 設計程式中的系統櫃:指標概論

指標是 C/C++ 的靈魂,了解指標的真面目,你可以更快速認識資料結構中記憶體的操作! 指標宣告與運算 這個議題是我之前常常搞混的!有時候 * 與記憶體有關,...

鐵人賽 Software Development DAY 1

技術 [Day 01] 用C++ 設計程式中的系統櫃:前言

圖靈獎得主曾經說過:「程式設計 = 資料結構 + 演算法」 在入門階段,我們不見得會認為資料結構的重要性。只要 Online Judge 系統亮起 Accept...

技術 <<Sets-STL>> _HakerRank_C++_STL

#include &lt;cmath&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; #include...

技術 <<Deque-STL>> _HakerRank_C++_STL

#include &lt;iostream&gt; #include &lt;deque&gt; using namespace std; void pri...

技術 <<Vector-Print pretty>> _HakerRank_C++_STL

#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int ma...

技術 <<Vector-Erase>> _HakerRank_C++_STL

#include &lt;cmath&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; #include...

技術 <<Vector-Sort>> _HakerRank_C++_STL

#include &lt;cmath&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; #include...