原创 C++中引用,指針,指針的引用,指針的指針

目錄(?)[+] 定義一個指針的三種寫法都對:1. int * p;  2. int* p;  3. int *p; 習慣不同而已 定義一個函數指針的三種寫法都對:1. int *p(); 2. int * p(

原创 數據結構—單鏈表的操作

單鏈表的操作:包括創建(頭插法、尾插法)、刪除結點、添加結點、單鏈錶轉置、尋找兩個鏈表的共同結點、單鏈表創建環、判斷單鏈表是否有環、解環(待添加) #include <stdio.h> #include <stdlib.h> //線性

原创 C++中構造函數調用其他函數

#include <stdlib.h> #include <iostream> using namespace std; struct CLS { int m_i; CLS( int i ) : m_i(i){}

原创 數據結構—雙鏈表的操作

/** * @brief 雙鏈表的初始化,建立,插入,查找,刪除 * @author ranqy374 * @date 2013.6.26 */ #include <stdio.h> #include <st

原创 exit()函數的用法

exit是一個庫函數,exit()使程序立即正常終止,如果狀態值爲0則認爲正常推出,如果非零則說明存在執行錯誤。調用exit()清除和關閉所有打開的文件,寫出任何緩衝輸出,並且調用所有atexit()登記的程序終止函數。 相關函數:_ex

原创 各種排序算法時間複雜度、穩定性、初始序列是否對元素比較次數有關

怎麼記憶穩定性: 總過四大類排序:插入、選擇、交換、歸併(基數排序暫且不算) 比較高級一點的(時間複雜度低一點得)shell排序,堆排序,快速排序(除了歸併排序)都是不穩定的,在加上低一級的選擇排序是不穩定的。 比較低級一點的(時間複雜

原创 各種排序算法的穩定性和時間複雜度小結

選擇排序、快速排序、希爾排序、堆排序不是穩定的排序算法, 冒泡排序、插入排序、歸併排序和基數排序是穩定的排序算法。 冒泡法:   這是最原始,也是衆所周知的最慢的算法了。他的名字的由來因爲它的工作看來象是冒泡:  複雜度爲O(n

原创 數據結構—線性表之順序表的操作

數據結構中,線性表之順序表的操作,包括初始化、創建順序表、插入,刪除,查找 #include <stdio.h> #include <stdlib.h> /** * @brief 線性表的順序存儲結構,在存、讀數據時不管是哪個位置,

原创 C++四種強制類型轉換

一、reinterpret_cast<T*>(a) 編譯器在編譯期處理任何指針都可以轉換成其它類型的指針,T必須是一個指針、引用、算術類型、指向函數的指針或指向一個類成員的指針。 表達式reinterpret_cast<T*>(a)能夠用

原创 calloc(), malloc(), realloc(), alloca()函數的區別

malloc : 向堆申請分配內存,不初始化 calloc  : 向堆申請分配內存,初始化爲0 realloc:  向堆申請分配內存,可調整大小 alloc   :  向棧申請內存,不需手動釋放 四個函數的聲明分別是: void *

原创 很形象的接口的使用——針對初學者

里氏代換原則是什麼?聽起來很高深,不過我們也不是什麼學院派,就不講大道理了,直接拿個例子來說一下。我們拿人和程序員舉個例子。人是一個大類,程序員是繼承自人的子類。看看這句話:人需要吃飯。這句話我們把“人”換成“程序員”,就是:程序員需要吃

原创 Pycharm 快捷鍵

Ctrl /註釋(取消註釋)選擇的行Shift + Enter開始新行Ctrl + Enter智能換行TAB Shift+TAB縮進/取消縮進所選擇的行Ctrl + Alt + I自動縮進行Ctrl + Y刪除當前插入符所在的行Ctrl

原创 c++中find函數的用法

1,返回字符(字符串)在原來字符串的中首次出現的下標位置 例:string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");  position = s.find("jk");   2,返回fla

原创 二叉樹創建和遍歷詳細分析

對於二叉樹,原來始終不明白用遞歸前序創建,前序遍歷究竟是怎麼回事,今天晚上好好琢磨了下。 兩種不同的方法: 1、可以考慮把遞歸調用的函數考慮爲調用不同的函數,方便分析。 2,如果考慮爲調用同一個函數時,遞歸是用棧來實現的,用棧來分析的話就

原创 operator int()用法

operator int() 是類型轉換運算符,比如: struct A { int a; A(int i):a(i){} operator int() const { return a; } }; void main() { A