原创 T樹(字典樹的插入和刪除以及查找)C++

簡單的實現了Trie樹的常用操作,有點簡陋,但是思想能夠體現出來,第一次寫可能會有bug,目前我沒有查到….沒有內存泄漏. 如有錯誤歡迎斧正! #include<iostream> #include<stack> using

原创 樹的遍歷,前中後+層次遍歷非遞歸

存在內存泄漏,,,,原因是沒有銷燬結點時內存釋放的處理. #include<iostream> #include<deque> #include<stack> #include<string> using namespace s

原创 哈夫曼樹以及編碼

今天寫了寫哈夫曼樹.. 首先是頭文件heads.h #pragma once #include<iostream> #include<vector> #include<string> #include<deque> #includ

原创 子串查找的算法-----BM

字符串的匹配有著名的KMP之外還有另外一個算法,Boyer-Moore算法 下面是根據一篇文章學習來寫出的BM算法的代碼.算是學習下. 附上學習文章的鏈接http://blog.jobbole.com/104854/ #inc

原创 linux的虛擬文件系統

來源:fireaxe ( [email protected]) 鏈接:http://blog.chinaunix.net/uid-20528014-id-4094714.html 看到一篇文章講的很好,至少對於我而言

原创 複述一下陶大神的文章總結tcp的連接關閉

關閉tcp連接大家都知道會發生四次揮手結束..但是這裏面還有細節…. 關閉連接有兩個函數:close 和 shutdown .. 首先先說下關閉的是監聽描述符的情況….. 1.close 監聽隊列中有一

原创 給一個正整數n,找出個數最小的平方數讓他們的和等於n

題目是這樣的:給一個正整數N,找到若干個完全平方數(1,4,9…..)使得他們的和等於n需要讓平方數的個數最少… 例如: n = 12 返回3 12 = 4 + 4+4 n =13 返回 2 13 = 4 +

原创 c++11的仿函數和綁定器使用小筆記

最近有用到了c++11的特性,function,bind,lambda。溫故知新。 1.先說下,function,這個是一個通用的,可調用對象的封裝(可調用對象包括了,函數指針,函數對象 ,lambda),這樣封裝起來,可以放心傳

原创 圖的最短路徑的問題

最近開始對圖進行了簡單的瞭解,只是寫了圖的單源最短路徑和最小生成樹的算法,不得不吐槽下,迪傑斯特拉和克魯斯卡爾這兩個名字都代表那個算法,讓我很暈總是記不住。 另外寫的時候可能會感覺到這個迪傑斯特拉算法和最小生成樹的prim算法有

原创 兩種共享內存的實現區別,shm和mmap

linux會有兩種方式可以使用共享內存. 分別是shm_XX函數和mmap,這兩種共享內存的是內核實現方式大同小異,但是還是有區別的. 二者的區別如下: POSIX標準的是mmap,具有簡單易用的特點. system V標準的

原创 B樹

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> using namespace std; const unsigned max

原创 紅黑樹的實現小結

紅黑樹是一棵自平衡二叉查找樹 雖然很複雜但是效率很高,可以在O(log n)時間內做查找插入和刪除 它的統計性能要比AVL樹要好。 共有五點性質 根節點必須是黑色的 葉子節點和空節點都是黑色的 從任意 節點到葉子節點的

原创 圖的最小生成樹的兩種算法

鄰接矩陣表示的圖的最小生成樹有兩種算法,是克魯斯卡爾(時間複雜度O(eloge))和普利姆O(n^2)算法。 其中普利姆算法的實現偷了個懶,做了個繼承。 //圖的最小生成樹 #include<iostream> #include

原创 方便查看篇---內存

內存篇   虛擬內存就是操作系統對存儲的抽象,爲每個程序提供一個比實際物理內存大得多的地址空間。   虛擬地址到物理地址的轉換。 這種轉換時由硬件mmu來完成的,操作系統採用的是頁式存儲,那麼會先查頁表,從頁表中查找該虛擬地址對應的物理頁

原创 kafka學習

1. Kafka的概念: producer:生產者 broker:kafka的節點 Consumer:消費者 partion:分區,topic存儲的物理分塊,一個partion只允許一個用戶組中的一個消費者消費。 topic:主題 o