原创 list簡單模擬實現

#define _CRT_SECURE_NO_WARNINGS #pragma once #include <assert.h> #include <iostream> using namespace std; template<

原创 壓縮字符串

問題:將"abbbbcccdddff"壓縮爲a4b3c3d2f        思路:首先計算出有幾個不同的字符,再將每個字符的個數存在一個數組, 最後使用循環壓縮,定義i和j,一個指向放的位置,一個指向放的內容; #include <st

原创 Linux進程間關係

進程組 每一個進程除了自己的進程ID,還有自己的進程組iD。進程組由一個或多個進程組成。通常它們與作業相關聯,可以接受同一終端的各種信號。在進程組中進程ID與進程組ID相同的爲進程組長 組長進程可以創建一個進程組,創建該組中的進程,然後

原创 Linux多線程(1)

線程 多線程(1) 線程的基本概念 線程是進程的進一步細化,進程是系統分配資源的基本單位,而線程cpu調度的基本單位。 進程就像是包工頭,獲取到系統資源,然後再分配給它裏面線程。 操作系統用於管理線程有個數據結構tcb,用來描述和管理

原创 Linux多線程(2)

線程 多線程(1) 線程同步與互斥 mutex(互斥量) 大部分情況,線程使用的數據都是局部變量,變量的地址空間在線程棧空間內,這種情況,變量歸屬單個線程,其他線程無法獲得這種變量。 但有時候,很多變量都需要在線程間共享,這樣的變量稱

原创 UDP/TCP簡單對比

UDP(用戶數據報協議)協議 UDP協議是無連接的 : 只需知道對端IP和端口號就可以發送數據,不需要建立連接,雙方感知不到對方的存在。 UDP協議是不可靠的: 沒有確認機制,不會對接收到的數據確認,就不知道對端是否收到。 UDP協議

原创 計算查找---哈希法

哈希 搜索時有靜態環境和動態環境。 靜態環境下:在執行插入和刪除等操作的前後搜索結構不會發生改變; 動態環境下:爲保持較高的搜索效率,搜索結構在執行插入和刪除等操作的前後將自動調整,結構可能會發生變化 靜態查找:只在數據元素集合中查

原创 Linux進程信號(1)

信號(1) 信號的基本概念 信號可以解釋爲:經商定作爲採取一致行動的時刻的暗號。 通常我們在shell下運行一個前臺程序,我們可以使用組合鍵ctrl + c來結束這個程序。而組合鍵ctrl + c就是向進程發送了一個信號,進程接收到信

原创 String類簡單實現

淺拷貝:也稱位拷貝,編譯器只是直接將指針的值拷貝過來,結果多個對象共用同一塊內存,當一個對象將這塊內存釋放掉之後,另一些對象不知道該塊空間已經還給了系統,以爲還有效,所以在對這段內存進行操作的時候,發生了訪問違規。 深拷貝:爲避免淺拷貝的

原创 進程概念

進程 進程概念 爲了使程序併發的執行,並且對併發執行的程序加以描述和控制,人們引入了進程的概念,進而提高了硬件設備的利用率與系統的吞吐量。 進程:是指在系統中作爲系統資源分配的基本單位,由機器指令、數據和堆棧組成,是一個獨立運行的活動實

原创 死鎖

死鎖概念 死鎖可以定義爲一組相互競爭資源或進行通信的進程間的“永久”阻塞。 死鎖的產生 競爭不可搶佔性資源引起死鎖 假設有兩個進程A、B A和B都需要對文件f1、f2進行寫操作。 一個進程都必須獨佔f1、f2文件才能進行。

原创 用C++模擬實現哈希表

哈希相關概念 //comm.hpp #pragma once const int _PrimeSize = 28; //素數表 static const unsigned long _PrimeList[_PrimeSize] =

原创 Linux進程信號(2)

信號(2) 捕捉信號 內核如何實現信號的捕捉 如果信號的處理動作是用戶自定義函數,在信號遞達時就調用這個函數,這稱爲捕捉信號。由於信號處理函數的代碼是在用戶空間的,處理過程比較複雜,舉例如下: 用戶程序註冊了SIGQUIT信號的處

原创 Linux----基本權限概念

一、基本權限概念 Linux下有兩種用戶: 超級用戶(root) 普通用戶 超級用戶:可以做任何事,權限最高 普通用戶:只能做有限的事 超級用戶的命令提示符’#’,

原创 二叉樹的相關操作

#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <queue> #include <stack> using namespace std; template<cl