原创 堆的一些簡單應用

查找數據10000個數中找出最大的前100個數創建一個100個數的小堆,最上面的數是這100個數中最小的;然後依次遍歷(從101到10000),如果比它大,替換它。代碼實現如下:https://github.com/HandsomeBob

原创 Linux 中實現進度條

想要實現進度條的小程序,首先必須知道:(\r以及\n的區別) 在Windows操作系統下:Enter鍵我們都知道是換行的意思,實際上不是的,它的意思是回車換行 \r  回車:使光標回到這一行的行首 \n  換行:使光標到下一行 如果

原创 Linux 中的find指令

Linux中的find是一個很強大,很有用的一個指令。它的主要作用就是在文件樹中查找對應的文件。 find的命名格式 //fing + 查找路徑 +命令選項 find pathname -options 2.find的一些命令選項 -

原创 棧的一些小小應用

昨天剛實現了棧的一些基本操作,今天就來實現一點棧的應用把!首先,寫一點比較簡單的:1.逆波蘭表達式的計算。     在通常的表達式中,二元運算符總是置於與之相關的兩個運算對象之間,這種表示法也稱爲中綴表示。逆波蘭表達式也稱爲後綴表達式。比

原创 哈希表(散列表)

哈希表,根據關鍵字(key)直接訪問在內存存儲位置的數據結構。 它通過一個關鍵值的函數將所需的數據映射到表中的位置來訪問數據,這個映射函數叫做散列函數,存放記錄的數組叫做散列表。 構造哈希表的幾種方法 直接定址法--取關鍵字的某個線性

原创 c++實現棧的基本操作

棧的定義    棧(Stack)又稱堆棧,是一種運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除運算。 棧有兩種實現的方式。一種是順序存儲,和數組類似;一種是鏈式存儲,和單鏈表類似。650) this.width=650;" sr

原创 線索化二叉樹

二叉樹是一種非線性結構,遍歷二叉樹幾乎都是通過遞歸或者用棧輔助實現非遞歸的遍歷。用二叉樹作爲存儲結構時,取到一個節點,只能獲取節點的左孩子和右孩子,不能直接得到節點的任一遍歷序列的前驅或者後繼。爲了保存這種在遍歷中需要的信息,我們利用二叉

原创 linux 系統的 ctags 以及Makefile的應用

1.ctags(Linux代碼查看) ctags -R :在當前目錄下建立索引。  ctrl + ]: 跳轉到函數或變量的定義處 ctrl + T  :  跳轉至上級  2.Makefile的應用 會不會寫make

原创 c++實現廣義表

廣義表是非線性的結構,是線性表的一種擴展,是有n個元素組成有限序列。廣義表的定義是遞歸的,因爲在表的描述中又得到了表,允許表中有表。    <1> A = ()<2> B = (a,b)<3> C = (a,b,(c,d))<4> D =

原创 特殊矩陣的壓縮存儲

對稱矩陣及對稱矩陣的壓縮存儲  設一個N*N的方陣A,A中任意元素Aij,當且僅當Aij == Aji(0 <= i <= N-1 && 0 <= j <= N-1),則矩陣A是對稱矩陣。以矩陣的對角線爲分隔,分爲上三角和下三角。  壓縮

原创 堆的簡單實現(仿函數)

堆數據結構是一種數組對象,它可以被視爲一棵完全二叉樹結構。最大堆:每個父節點的都大於孩子節點。最小堆:每個父節點的都小於孩子節點。堆結構的二叉樹存儲是:650) this.width=650;" src="http://s4.51cto.

原创 c++實現二叉樹(遞歸)

首先先來看一下樹的結構:樹是n(n>=0)個有限個數據的元素集合,形狀像一顆倒過來的樹。650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style=

原创 TCP的三次握手,四次揮手

TCP使用窗口機制進行流量控制 什麼是窗口? 連接建立時,各端分配一塊緩衝區用來存儲接收的數據,並將緩衝區的尺寸發送給另一端 接收方發送的確認信息中包含了自己剩餘的緩衝區尺寸 剩餘緩衝區空間的數量叫做窗口 2. TCP的流

原创 網絡編程-套接字(scoket)

socket編程  socket這個詞可以表示很多概念: 在TCP/IP協議中,“IP地址+TCP或UDP端口號”唯一標識網絡通訊中的一個進程,“IP地址+端口號”就稱爲socket。   在TCP協議中,建立連接的兩個進程各自有一個so

原创 操作系統中的幾種常見進程調度算法

首先來看下集中常見的進程調度算法: 1.先來先服務調度算法 2.短作業優先調度算法 3.優先級調度算法 4.高響應比優先調度算法 5.輪轉調度算法 6.多級反饋隊列 一、先來先服務和短作業(進程)優先調度算法   1.先來先服務調度