原创 《C++實現數據結構》:圖

圖的內容非常多,邊學習邊寫和圖有關的算法也花費了不少時間與精力。寫着寫着最後都有近1000行代碼了。orz…… 接下來詳細說說和圖有關的都有啥。 一、相關概念 圖分爲無向圖和有向圖。 在無向圖中,若圖中任意一對頂點都是連通的,則稱此圖

原创 IO多路複用:select、poll、epoll

一、同步異步、阻塞非阻塞的概念區分 首先,一個 輸入操作通常包括兩個不同的階段: (1)等待數據準備好 (2)從內核向進程複製數據 對於一個套接字上的輸入操作,第一步通常涉及等待數據從網絡中到達。當所等待分組到達時,它被複制到內核中的某個

原创 我的第一次找實習經歷

因爲是第一次找實習,還是菜鳥,所以我採取的是海投戰術,多筆試多面試多增長經驗。以下是我這陣子的面試經歷(部分答案是事後在網上找的),因爲已經找到了滿意的實習,所以還有其他公司的筆試面試也就不參加了。 阿里一面(處女電話面): 1.ch

原创 《C++實現數據結構》:哈夫曼樹

首先我們先來明確幾個概念。 樹的路徑長度:從根到樹中任意結點的路徑長度是指從根結點到該結點的路徑上所包括的邊的數目,也相當於是該結點的層次-1。 樹的內路徑長度:除葉子結點外,從根到樹中其他所有結點的路徑長度之和。 樹的外路徑長度:

原创 《C++實現數據結構》:優先權隊列

一個大小爲n的堆是一棵包含n個結點的完全二叉樹,該樹中每個結點的關鍵字大於等於其雙親結點的關鍵字值。完全二叉樹的根稱爲堆頂,若它的關鍵字值是整棵樹上最大的,我們稱之爲最大堆。反之,就是最小堆。 如果要求每次從數據結構中取出的元素是具有最

原创 TCP連接建立與關閉數據包捕獲

一、三次握手與四次揮手 建立TCP連接需要三次握手,斷開連接則需要四次揮手,整個過程如下: (一)連接建立階段: (1)客戶端發送一個SYN包給服務器,然後等待應答。 (2)服務器端迴應給客戶端一個ACK=1、SYN=1的TCP數

原创 《C++實現數據結構》:隊列

隊列是限定在表的一端插入,在表的另一端刪除的線性表,是先進先出(FIFO)的線性數據結構。 隊列基類如下: #include <iostream> using namespace std; //隊列基類 template <typen

原创 C++實現排序算法

八大排序算法有直接插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。 今天想把排序算法系統學習一下,所以上網搜索了下排序算法。真是個好傢伙,那麼多!不怕,一個個學習並用代碼實現出來! 排序算法大體可以分

原创 《C++實現數據結構》:線性表

前言:這兩天重新翻閱陳慧南老師編寫的《數據結構——使用C++語言描述》(第2版),自己動手實現了書中的數據結構or算法。可能是爲了簡潔,書中有些代碼沒有考慮周全。我通過自己的思考實現了下,都是編譯通過可以跑起來的。 接下來就愉快地開始本

原创 C++ STL中Map的按Key排序和按Value排序

(必須吐嘈下CSDN,竟然沒有轉載功能,搞得看到好文章都不能一鍵轉載,一段一段複製。orz) 原文:http://blog.csdn.net/iicy266/article/details/11906189?utm_source=tui

原创 Telnet過程數據包捕獲

Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標準協議和主要方式。它爲用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet

原创 《C++實現數據結構》:二叉搜索樹

設結點由關鍵字值表徵,假定所有結點的關鍵字值各不相同,二叉搜索樹或者是一棵空二叉樹,或者是具有下列性質的二叉樹: (1)若左子樹不空,則左子樹上所有結點的關鍵字值均不小於根結點的關鍵字值。 (2)若右子樹不空,則右子樹上所有結點的關鍵

原创 《C++實現數據結構》:堆棧

堆棧是限定插入和刪除操作都在表的同一端進行的線性表,是後進先出(LIFO)的線性數據結構。 #include <iostream> using namespace std; //堆棧基類 template <typename T> cl

原创 《C++實現數據結構》:二叉樹

二叉樹的定義以及性質在之前的博客裏已經說過了,今天來用C++實現二叉樹。提供先序遍歷、中序遍歷、後序遍歷的遞歸和非遞歸的兩種實現方式,也提供了層次遍歷的用隊列實現方式。詳細的看代碼學習吧,關鍵註釋都有加上了。 ——————————————

原创 POP3數據包捕獲

POP3,全名爲“Post Office Protocol - Version 3”,即“郵局協議版本3”。是TCP/IP協議族中的一員,由RFC1939 定義。本協議主要用於支持使用客戶端遠程管理在服務器上的電子郵件。 一、POP3的三