原创 按單詞逆序打印字符串

按單詞逆序打印字符串,例如:輸入How are you ,輸出爲 you are How 實現流程:先將每一個單詞分別逆序即結果爲 woH era uoy ,然後將整個字符串看作一個單詞逆序爲 you are How 代碼實現: 將

原创 標準I/O流

FILE結構體也稱爲流(Stream) 流分爲文本流和二進制流,兩者區別爲:文本流:換行符表示爲爲“\r\n” 二進制流:換行符表示爲爲“\n”。 全緩衝:當流的緩衝區無數據或者無空間時才執行實際I/O操作。 行緩衝:當輸入輸出遇到換行符

原创 二叉樹算法

二叉樹的遍歷算法 1.先序遍歷 對每一個節點將其看作根節點按照根左右的順序進行遍歷。 示例代碼 void _PreOrderTree(Node* root)            //先序遍歷二叉樹  {   if (root != NU

原创 標準IO和文件IO

標準IO 標準I/O是ANSI C建立的一個標準I/O模型,是一個標準函數包和stdio.h頭文件中的定義,具有一定的可移植性。標準IO庫處理很多細節。例如緩存分配,以優化長度執行IO等。標準的IO提供了三種類型的緩存。 全緩存:當填滿標

原创 UDP廣播與組播通信

UDP廣播組播通信 廣播通信方式 數據包發送方式只有一個接收方,稱爲單播 如果同時發送給局域網內所有主機,稱爲廣播。 只有用戶數據報(使用UDP協議)套接字才能廣播。 廣播發送流程: 1)、創建發送用戶數據報套接字 2)、缺省創建的

原创 TCP服務器客戶端網絡通信

TCP的服務器和客戶端  服務器:提供服務的一方  ---- 被動的一方   客戶端:請求服務的一方  ---- 主動的一方   Socket服務器客戶端網絡通信 下面用一個簡單的例子來說明一下服務器與客戶端的通信流程。  舉例:打電話

原创 用Huffman樹實現文件壓縮與解壓

用Huffman樹實現文件的壓縮與解壓 我們先來了解一下什麼是Huffman樹? 我們平常所使用的Zip等壓縮工具都是藉助Huffman樹實現的,Huffman是一種特殊的二叉樹,它是一種加權路徑最短的二叉樹, 因此也稱爲最

原创 內存對齊詳解

首先定義兩個結構體如下,我們看一下兩個結構體大小: #include <iostream> using namespace std; struct A { int a; char b; short c; };

原创 TCP網絡服務器模型

服務器模型 1、循環服務器 實現流程: 1)、服務器端從連接請求隊列中提取請求,建立連接並返回已連接的套接字。 2)、服務器端通過以連接的套接字循環接收數據,處理併發給客戶端,直到客戶端關閉連接。 3)、服務器端關閉已連接的套

原创 排序算法總結

在程序中當我們需要對數據進行排序時,會面臨很多排序算法,這個時候對排序算法的選擇多種多樣。下面我們列出以下一些常用的排序算法。 常用的排序算法有: 冒泡排序 選擇排序 插入排序 快速排序 歸併排序 堆排序 希爾排序 1. 冒泡排序(

原创 網絡編程面試題

1.OSI七層模型和TCP/IP四層模型 OSI七層模型 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層 TCP/IP四層模型 應用層 傳輸層 網際互聯層 網絡接口層 對應關係(圖示) 2.tcp和udp的區

原创 C++常用數據類型轉換的區別

C++常用數據類型轉換1.隱士類型轉換short a = 2;int b = a;short是兩字節,int是四字節,由short型轉成int型是寬化轉換(bit位數增多),編譯器沒有warning寬化轉換(如char到int,int到l

原创 進程間通信

進程間通信     進程間通信方式分爲:無名管道、有名管道、IPC對象(共享內存、消息隊列,信號燈)。    無名管道主要用於實現線程見得通信以及具有親緣關係的進程見得通信。     有名管道主要用於無親緣關係進程間的通信。    

原创 String類的實現

String類的實現 C++封裝了一種新的數據類型 --- 字符串類型 String 該類型在庫string中對string類進行了封裝,庫內實現了對字符串的各種操作運算符的重載 如: “ = ” ,“ += ” , “ + ” , “=

原创 C/C++面試常考關鍵字

C/C++面試常考關鍵字總結 1.static關鍵字的作用? 1)、static 申明的變量爲靜態全局變量,該變量存儲在靜態數據區,當整個程序結束時該變量纔會被釋放,只是生命週期延長,作用域不受影響。 2)、stati