原创 模擬實現String類---->寫時拷貝

之前分享了模擬實現String類的傳統寫法和現代寫法,今天再來分享一下寫時拷貝的方法,寫時拷貝主要用在一下場景中 需要大量拷貝構造,析構同樣的空間,這樣,傳統寫法和現代寫法中國不斷的開闢空間,析構空間,效率太低 <span style="

原创 面試熱門題C與C++的區別-------指針和引用

在面試過程中,C語言和C++的區別總是面試官的側重點,而指針和引用更是容易被問到,指針和引用的區別很簡單,但很少有人能有全面的,有層次有條理的回答這個問題,所以有條理的總結歸納就顯得尤爲重要。 先來了解什麼是指針,什麼是引用 指針:存儲內

原创 多種方法實現費波納契數列

費波納契數描述的問題: 兔子的生長情況:1.第一個月有一對剛誕生的兔子                              2.第二個月之後(第三個月初)就可以生育                              3.每月

原创 操作系統---進程調度算法

調度類型---OS的三級調度 1.作業調度---高級調度(用於決定將外存上處於後備隊列中的哪些作業調入內存,處於內存就緒隊列,準備執行) 2.進程調度---低級調度(決定就緒隊列中哪個進程將獲得處理機) 3.交換調度---中級調度(目的是

原创 高度平衡的二叉搜索樹-----AVL樹

AVL樹是高度平衡的二叉搜索樹,它能保持二叉樹的高度平衡,儘可能降低二叉樹的高度,減少數的平均搜索長度 AVL樹的幾個特點: 1.左右子樹高度絕對值不超過1 2.樹的每左右子樹都是AVL樹 3.每個節點的平衡因子是-1,0,1(平衡因子

原创 用兩種方法實現棧---順序表和鏈表

棧是一種先進後出的數據結構,棧中的數據是先進後出的(First In Last Out, FILO)。棧只有一個出口,允許新增元素(只能在棧頂上增加)、移出元素(只能移出棧頂元素)、取得棧頂元素等操作。在STL中,棧是以別的容器作爲底部結

原创 棧和隊列面試題(三)

4.元素出棧入棧的合法性,如入棧的序列(1,2,3,4,5),出棧的序列爲(4,5,3,2,1). 思想:先入棧一個元素,將出棧序列的第一個元素和該棧的棧頂元素比較,如果相同,那就讓該元素出棧且出棧序列往後走一個,如果不相同,就按照入棧序

原创 簡單的小遊戲---代碼實現三子棋

大家都玩過五子棋吧,在這裏,我就來實現一個比五子棋低版本的小遊戲,三子棋,僅供娛樂哦!!</pre></p><p></p><p></p><p><pre class="cpp" name="code">board.h #define _CR

原创 棧和隊列面試題(一)

1.實現一個棧,要求Push(入棧),Pop(出棧),Min(返回最小值的操作)的時間複雜度爲O(1)。 思想:創建兩個棧,一個爲正常棧S,一個爲最小元素棧Minstack,按元素入棧順序將第一個元素入S和Minstack棧,然後將元素依

原创 字符數組的翻轉

 eg:將“student a am i”翻轉變爲"i am a student" 思路:將整個數組翻轉,再把每個單詞都翻轉過來就可以了 #define _CRT_SECURE_NO_WARNINGS 1 #include <st

原创 兩種方法實現隊列---順序表和鏈表

 隊列(queue)在計算機科學中,是一種先進先出的線性表。它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱爲隊尾,進行刪除操作的端稱爲隊頭。隊列中沒有元素時,稱爲空隊列。隊列主要

原创 小米麪試題---朋友圈問題(並查集)

    假如已知有n個人和m對好友關係(存於數字r)。如果兩個人是直接或間接的好友(好友的好友的好友...),則認爲他們屬於同一個朋友圈,請寫出程序求出這n個人裏一共有多少朋友圈。    例如:n=5,m=3,r={{1,2},{2,

原创 模擬實現String類--->現代寫法

已經介紹過模擬實現一個String類的傳統寫法,現在,我們在來討論一下使用現代寫法模擬實現一個String類,現代寫法能夠更好更方便的管理代碼,在有些地方也更高效 下面是實現的代碼: class String { public: /*S

原创 棧和隊列面試題(二)

2.使用兩個棧實現一個隊列。 思想:棧是先進後出的數據結構,隊列是先進先出的數據結構,要用兩個棧實現一個隊列,就必須讓兩個棧實現元素的先進先出。入棧時,讓需要入棧的元素全都進入S1棧中,出棧時,再把S1中的元素依次出棧,入S2棧,再把S2

原创 棧和隊列面試題(四)

5.一個數組實現兩個棧 有兩種方法: (1),數組單號下標爲一個棧,雙號下標爲一個棧 (2)開闢一個數組,從0號下標往右爲1號棧,從N號下標網左爲2號棧 下面先來實現第一種方法: #include <iostream> #includ