原创 字符串與整型的相互轉換

void itoa (int n,char s[]){int i,j,sign;if((sign=n)<0)//記錄符號n=-n;//使n成爲正數i=0;do{      s[i++]=n%10+'0';//取下一個數字}while ((

原创 函數模板、重載解析

爲了交換int的兩個值,我們可以定義一個交換int的函數swap(int a,int b),但是當我們要交換一個char的值時,我們又要定義一個char的swap函數,沒定義一種類型的函數,我們都要定義相應的函數,爲了避免因爲類型不同而重

原创 鏈表操作總結

#include"stdio.h" struct link{ int data; struct link *next; }; //創建鏈表 struct link *createLink(int *p,int num) { stru

原创 25匹馬賽跑

25匹馬通過賽跑來決出前三名,每輪最多5匹馬參賽,求最少需要幾輪? 條件: 1、最多5匹馬一組,可以決出本組比賽的次序。 2、沒有計時工具,假設馬每輪的速度相同。 ====================================

原创 深度排序對0-n進行全排序

/* * *從0-n的整數的全排序 *使用深度搜索 */ #include"stdio.h" int n; int a[10]; int book[10]; int num_sort; //深度搜索 void dfs(int step)

原创 int 佔用多少字節

本文轉自http://charlesxie.blog.51cto.com/2236179/939680 最近在看深入理解計算機系統這本書,上面提到了在32位機器和64機器中int類型都佔用4個字節。後來,查了The C Progr

原创 二叉樹操作

#include"stdio.h" struct Btree{ int data; struct Btree *right; struct Btree *left; }; //查找節點 struct Btree *findNode(

原创 判斷迴文

#include"stdio.h" int HuiWen(char *str,int num) { int left,right; if(num%2==0) { left=num/2-1; right=num/2; }

原创 四個人晚上過橋

四個人過橋分別用時1,2,5,10.破橋只能擔得起兩個人,而且過橋時間得按慢的那個計算。問在黑夜而且只有一個手電筒的情況下,怎麼才能在17分鐘之內過橋????? 第一步:1、2過橋,用時2分鐘; 第二步:1帶電筒回來,

原创 多項式求和(用鏈表)

<pre name="code" class="cpp">#include"stdio.h" struct poly{ int exp; int coef; struct poly *next; }; //創建多項式 struct

原创 尋找兩個鏈表的交點

1首先判斷是否有交點 2找到第一個交點 方法一:使用暴力法,時間複雜度爲N*N 方法二:判斷是否相交的辦法是最後一個節點是否相同,如果相同,則相交,否則不相交 兩個鏈表的長度分別爲len1,len2,在長的鏈表的第abs(len1-le

原创 在棧中增加min函數

定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1)。 算法:在棧中設置一個輔助棧來保存最小值 代碼: /** 爲棧增加一個min函數,獲取棧中的最小值,複雜度爲1

原创 創建對象中構造函數和析構函數

在創建一個對象實例,先調用父類的構造函數,再調用派生類 在銷燬一個對象實例時,先銷燬派生類,在銷燬父類的析構函數 A繼承B class A { private: char name[10]; public: A () { cou

原创 字符串四則運算

最近做了一道華爲的機試題。感覺自己的方法比網上的簡潔。 3. 簡單四則運算 問題描述: 輸入一個只包含個位數字的簡單四則運算表達式字符串,計算該表達式的值 注 1、表達式只含 +, -, *, / 四則運算符,不含括號 2、表達式數值

原创 解析C++中虛函數

C++中的一個重要特徵是多態即使用同名函數實現不同的功能,多態分爲編譯時的多態和運行時的多態,編譯時的多態主要是指運算符重載和函數重載,而運行時的多態主要是指派生類和虛函數的多態,即使用基類的應用或指針可以引用派生類中的方法(不能引用基類