原创 網絡基礎——《網絡協議》《OSI和TCP/IP結構模型分析》《認識IP地址》《認識MAC地址》

一 協議 一種約定俗成的約定 二 網絡協議 1.協議分層 比如:在倆個人在互相交流的時候,他們之間相互約定了一種約定,那就是一個在說話的時候,另外一個就會聆聽對方說的話,而不是自己說自己的,誰也聽不清楚,所以在計算機的世界裏面就對

原创 《 HTTP面試題 》—— HTTP協議常見的一些問題完整總結

HTTP協議 《 1.Http協議的定義?》 答: 對器客戶端和 服務器端之間數據傳輸的格式規範,格式簡稱爲“超文本傳輸協議”。 HTTP(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連接方式

原创 c++ 搜索二叉樹——主要包括:《搜索二叉樹的概念》《增刪查的分析和解題思路》《完整實現代碼》《搜索二叉樹的性能分析》

經過我們上一篇博客的書寫,我們可以瞭解到 map / multimap / set / multiset底層使用搜索二叉樹實現的,那麼搜索二叉樹又是什麼呢?下面我們就走進搜索二叉樹的世界瞭解一下。 《一》搜索二叉樹的概念 二叉搜索

原创 C++ AVL樹——主要包括:《AVL樹的介紹》《節點的定義》《AVL樹的插入(左右單旋 + 雙旋)》《AVL樹的實現代碼》《AVL樹的性能》

上一篇博客的內容——《 二叉搜索樹的鏈接 》 在前面,我們已經實現過了過了搜索二叉樹,但是搜索二叉樹還是有很多不足之處,要我們考慮,所以我們像現在實現起來是要容易操作的樹,所以,下來,我們就開始了另外一棵樹——AVL樹。 不足之處

原创 面試題——vector完整總結

Vector的總結 Vector底層是一個動態數組 默認構造的方式是0, 之後插入按照1 2 4 8 16 二倍擴容。注(GCC是二倍擴容,VS13是1.5倍擴容。 原因可以考慮內存碎片和夥伴系統,內存的浪費)。《 擴容後是

原创 c++ map/multimap 主要包括:《map的介紹及接口的使用》《multimap的介紹及接口的使用》《map與multimap的區別》

如果想看set與multiset的使用,可以點下面的這個鏈接----》set/multiset的使用《---- 《二》map 首先,我們學習map之前,和上面的set是一樣的,我們要有查文檔的習慣,下面,如果需要文檔的,點這裏——

原创 c++的課前準備 和 如何學習 《剛開始學習c++》

通過學習C語言之後,我相信大家都使用 過了編譯器吧?大多數同學都是使用的 vs 編譯器吧!這裏我們不管那麼多,我們都知道,學習計算機語言,都是非常難的一件事,有時候,大家再說Java簡單,只是把庫裏面的代碼,拿過來直接實現。就可以

原创 總結:《list和vector》《AVL與紅黑樹》《set與map》《鏈表與順序表》《算法排序》

一,list和vector的區別 區別:vector爲存儲的對象分配一塊連續的地址空間,因此對vector中的元素隨機訪問效率很高。在vecotor中插入或者刪除某個元素,需要將現有元素進行復制,移動。如果vector中存儲的對象

原创 c++ list modifiers《列表修飾符/調試器》

一. list modifiers<這個實現也是非常的重要的,所以要好好看下面的代碼> 1,實現頭增,頭刪,,尾增,尾刪 void PrintList(list<int>& l) { for (auto& e : l) {

原创 排序——插入排序 主要包括:《直接插入排序》《希爾排序》

這裏我們就實現這倆個,我覺的有點太多了的話,我們也看不進去,我把剩下的,《選擇排序》《交換排序》《歸併排序》《非比較排序》在另外寫幾篇博客,我會把下面的鏈接到時候發在下面,這樣就比較好看; 《插入排序》鏈接:https://blo

原创 數據結構——C語言 《 堆的介紹 》和 《 堆的實現 》

一,堆的理解 如果有一個關鍵碼的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉樹的順序存儲方式存儲在一個一維數組中,並滿足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且

原创 LeedCode 150 逆波蘭表達式求值 c++ 《接解題分析加實現代碼》

和前面的一樣,我們先看下題目的要求: 根據逆波蘭表示法,求表達式的值。 有效的運算符包括 +, -, *, / 。每個運算對象可以是整數,也可以是另一個逆波蘭表達式。 說明: 整數除法只保留整數部分。 給定逆波蘭表達式總是有效

原创 LeedCode 144. 二叉樹的前序遍歷 C/C++《兩種語言實現》加 《非遞歸實現》

和前面的一樣,我們先看一下題目: 給定一個二叉樹,返回它的 前序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,2,3] 首先我們先給出C語言的

原创 C++ 牛客網 鏈表分割 《完整分析 加 完整代碼》

題目描述: 編寫代碼,以給定值x爲基準將鏈表分割成兩部分,所有小於x的結點排在大於或等於x的結點之前 給定一個鏈表的頭指針 ListNode* pHead,請返回重新排列後的鏈表的頭指針。注意:分割以後保持原來的數據順序不變。 題

原创 Linux複習:進程間通信 ——《管道》

進程間通信的目的: 1.進程通信是具有獨立性的,所以要讓其通信,本身是有難度的 所以進程實現通信的前提是:要讓不同進程看到同一份資源。 資源:通常指的是某一塊內存 進程間通信發展 管道 System V進程間通信 POSIX進程間