原创 楊氏矩陣中查找一個數-時間複雜度小於O(N)

思路:從數組規律來看,先將查找數字與右上角數字作對比,如果大於右上角數字,說明右上角這一行都沒有,如果小於說明右上角這一列都沒有。 int FindYs(int arr[ROW][COL],int num) { int r

原创 Linux:初學總結(一些開發工具總結)

Linux學習目錄 開始linux學習時想必大多數人開始使用的文本編譯器是Vim編譯器,但是linux裏可不止只有它一個編譯器。來開始講起: 1.文本編譯器介紹 1.1:Vim文本編譯器 Vim是一個類似於Vi的著名的功能強大、

原创 Linux:進程間通信-信號量

Linux學習目錄 1、 什麼是信號量? 在對於臨界區資源管理過程中,爲了防止多個程序同時訪問一個共享資源而引發的一系列問題。比如:死鎖。 爲了解決這種問題,巨人們就發明了信號量。 信號量就是爲了解決在一個臨界區只有

原创 對繼承的纏纏綿綿

1.繼承 2.繼承與轉換 3.成員函數的重載、 覆蓋和隱藏區別 4.派生類成員函數 5.菱形繼承和虛繼承 1.繼承 1.1繼承概念: 繼承是面向對象重要的複用手段,就是一個類繼承另一個類的屬性和方法,這

原创 掰扯掰扯麪向對象的類和默認成員函數

來先上車瞭解一下面向對象的概念吧:對於對於單身黨來說對象這個詞應該是可望而不可即的詞吧,而面向對象更難。下面我們來掰扯掰扯麪向對象。 面向對象:它的思想是把整個世界看成具有行爲活動的各種對象的組成。比如,當你談對象時,你是不是要

原创 實現一個函數,可以左旋字符串中的k個字符.ABCD左旋一個字符得到BCDA ABCD左旋兩個字符得到CDAB

#include<stdio.h> #include<windows.h> #include<string.h> #include <stdlib.h> #include<assert.h> 方法一 分析:原字符串ABCD

原创 二叉搜索樹的刪,查,插(遞歸&非遞歸)

二叉查找樹(Binary Search Tree),(又:二叉搜索樹,二叉排序樹)它是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值

原创 用宏將一個數字的奇數位和偶數位交換和使用宏實現兩個數中求較大值

#include<stdio.h> #include<windows.h> //用宏將一個數字的奇數位和偶數位交換 #define Swap(num) (num&(0x55555555))<<1|(num&(0xAAAAAAAA

原创 簡單模擬實現printf函數

模擬實現printf("hello %s%c %d\n","worl", 'd', 1234); void PutInt(int num)//整型變量轉化爲字符輸出函數 { if (num > 9) {

原创 異常處理和捕獲總結

更多學習資源點這裏:C++學習 - 目錄索引 1、爲什麼要使用異常處理? 1.1、傳統的異常處理方法 1.2、異常處理 1.2.1、異常處理機制的原理 1.2.2、異常處理機制的語法結構 1.2.3、異常的類型匹配規則

原创 C語言深度解剖(第二章-符號讀書筆記)

2.1 註釋符號 c語言註釋有兩種:/…/和//, 其中:/…/編譯器剔除註釋代碼時會將/…/變爲空格。 特別注意:/…/這種註釋不能嵌套,/總是與離它最近的/匹配 2.2 連續符和轉義符 C語言裏以反斜槓\表示斷行。編譯器

原创 c++函數重載、缺省參數、命名空間的解析

1.c和c++的優缺點解析 c語言屬於面向過程。 優點是:性能比面向對象高,因爲類調用時需要實例化,開銷比較大,比較消耗資源。 缺點:沒有面向對象易維護、易複用、易擴展 c++屬於面向對象 優點是:易維護、易複用、易擴

原创 堆的創建及應用-詳細解釋

堆(英語:heap)通常是一個可以被看做一棵樹的數組對象。 堆總是滿足下列性質: 堆中某個節點的值總是不大於或不小於其父節點的值; 堆總是一棵完全二叉樹。 將根節點最大的堆叫做最大堆或大根堆,根節點最小的堆叫做最小堆或小根堆

原创 Linux:進程創建-等待-退出

Linux學習目錄 1、進程的創建 1.1:fork函數 pid_t fork(void) 返回值:父進程返回子進程id,子進程返回0,出錯返回-1 當進程調用fork時,內核中的fork都做下面的事情 > 分配新的內存塊和

原创 模板實現順序表和雙向鏈表

模板詳解可以點這裏 1、實現動態順序表 #include <iostream> #include <string> #include <assert.h> using namespace std; //區別下面兩種概念 //類