原创 第十五章:動態綁定

聲明:轉載來源:http://blog.csdn.net/chgaowei/article/details/6427731覺得這篇文章很好就轉載過來。 爲了支持c++的多態性,才用了動態綁定和靜態綁定。理解他們的區別有助於更好的理解多

原创 C++動態內存分配(堆)

1.堆內存分配 : C/C++定義了4個內存區間:     代碼區,全局變量與靜態變量區,局部變量區即棧區,動態存儲區,即堆(heap)區或自由存儲區(free store)。 堆的概念: 通常定義變量(或對象),編譯器在編譯時

原创 第十五章 15.2.2定義派生類 派生類構造函數 P531

首先說明:由於構造函數不能被繼承,因此,派生類的構造函數中除了對派生類中數據成員進行初始化外,還必須通過調用直接基類的構造函數來對基類中數據成員初始化。 一般地將,對派生類中數據成員初始化放在該派生類構造函數的函數體內,而調用基類構造函數

原创 遞歸:解決漢諾塔問題(數據結構3.2 P103)

關於漢諾塔問題我思考了一段時間。最後總結原因之前想不明白還是對遞歸問題沒有深入理解。我的另一篇博文《遞歸詳解》已經很好的介紹了遞歸的原理。 分析漢諾塔問題:由以下三步組成 1 用C做過度,將A柱上的n-1個盤子直接移到C柱上 2 將A

原创 算法導論實驗:第二章插入排序 P10

#include<iostream> using namespace std; int main() { int A[5]={2,6,3,5,1}; int i,j; int a; for (j=1;j<5;+

原创 第二章 習題2.1-3 查找線性表

#include<iostream> using namespace std; int main() { int A[5]={2,6,3,5,1}; int v=7; for (int i=0;i<6;++i)

原创 如何閱讀深入理解計算機系統

在找工作順利結束之後,我又回顧了一下之前的標註,結合自己的筆試、面試經歷,重新修訂了一下。其中應試指標的評分主要是以我的求職目標(互聯網行業偏算法的軟件工程師)爲參照,和其他職位的要求會有些出入。 第一章 計算機系統漫遊 A Tour

原创 2.6靜態鏈表

殷人昆的數據結構那本書所用的靜態鏈表無法區別鏈表尾和數組尾。所以採用這種結構。 靜態鏈表相當於是用一個數組來實現線性表的鏈式存儲結構,大概結構圖如下                                      在靜態

原创 快速排序解析

快速排序法原理也是用了分治法,主要原理是將數組分爲A[p..q-1] 和A[q+1..r],然後調整元素使得A[p..q-1]小於等於q,也小於等於A[q+1..r]。然後不斷的遞歸,到最後就排序完成。 上代碼: [cpp] v

原创 C語言中的int類型的範圍是由什麼決定的

C語言中的int類型的範圍是由什麼決定的 在 K&R 經典教材 The C Programming Language 的2.2節中,對 int 類型是這樣描述的 an integer, typically reflecting th

原创 遞歸詳解

遞歸是一個很重要的概念。看了很多講解之後覺得從2個方面理解比較方便: 1 函數的調用過程。  2.與棧的關係。 從以上兩點講解: 首先必須弄明白遞歸函數是怎麼調用的:每一層的函數都是在上一層遞歸函數結束時才返回的然後接着處理該層遞歸函數

原创 union

在C/C++程序的編寫中,當多個基本數據類型或複合數據結構要佔用同一片內存時,我們要使用聯合體;當多種類型,多個對象,多個事物只取其一時(我們姑且通俗地稱其爲“n 選1”),我們也 可以使用聯合體來發揮其長處。首先看一段代碼: uni

原创 類(繼承)的內存分配詳解

1.基類與派生類的內存分配 派生類繼承基類      內存分配時,是在於基類對象不同的內存地址處,按基類的成員變量類型,開闢一個同樣的類型空間,但注意開闢後派生對象的空間,不是複製基類的成員的值,而是僅僅開闢那種成員類型的空間,未初始化時

原创 函數參數傳遞方式

函數參數傳遞方式之一:值傳遞 (1)值傳遞的一個錯誤認識先看考題一中Exchg1函數的定義: void Exchg1(int x, int y) /* 定義中的x,y變量被稱爲Exchg1函數的形式參數 */ {    inttmp;

原创 1 數據結構類-最近公共祖先LCA問題

1.淘寶面試題:有一個一億節點的樹,現在已知兩個點,找這兩個點的共同的祖先。這個題怎麼做呢? 本題爲一道開放性試題,所以可以隨意一些。下文的第二道題目則不行。 本題類型 實現特定的數據結構的一些另外要求的功能。 方法1:修改原本