原创 July 微軟面試100題 第13題

輸入一個單向鏈表,輸出該鏈表中倒數第k個節點,倒數第0個節點是尾節點。 分析:本質是單鏈表的倒置   #include <iostream.h> #include <malloc.h> typedef struct ListNode {

原创 July 微軟面試100題 第十題自己的思路

用兩個棧相互入棧出棧。達到輸出字符的目的,代碼如下: #include <iostream.h>#include <stdio.h>#include <malloc.h>//用兩個棧處理字符串,通過出棧入棧輸出字符串typedef str

原创 Manhattan skyline problem

老師給的一道算法作業題,要求O(nlgn)實現,題目如下:     Suppose that you are given the exact locations and shapes of several rectangularbuild

原创 July 微軟面試100題 第11題 求二叉樹的最大距離

 求二叉樹中節點的最大距離 如果我們把二叉樹看成是一個圖,父子節點之間的連線是雙向的。我們姑且定義“距離”爲兩個節點之間的邊的個數。 寫一個程序。 求一棵二叉樹中相距最遠的兩個節點之間的距離。  ////////////////////

原创 bmp圖像的直方圖均衡化

#include <windows.h> #include <stdio.h> unsigned char *pBmpBuf;//讀入圖像的數據指針 int bmpWidth;//圖像的寬 int bmpHeight;//圖像的高 RGB

原创 浮點數到底能不能用 == 進行比較

今天看c語言,遇到一個問題,浮點類型能不能用 == 進行比較,其實這個問題以前也碰到過,在面試的時候,只知道盡量不要使用 == 對浮點數進行比較。那麼爲什麼呢,計算機中的計算不是確定的麼? 首先我們要了解浮點數在計算機中怎麼存放的。《深入

原创 二維數組動態分配和釋放 [轉]

  (1)已知第二維 Code-1 char (*a)[N];//指向數組的指針 a = (char (*)[N])malloc(sizeof(char *) * m); printf("%d\

原创 把c語言中的聲明用程序翻譯成通俗的語言

理解c語言的優先級規則: A  聲明從它的名字開始讀取,然後按照優先級次序一次讀取 B 優先級從高到底依次是: b1  聲明中被括號括起來的那部分 b2 後綴操作符       括號()表示這是一個函數,而方括號【】表示這是一個數組 b3

原创 狀態機的c語言編程

一 有限狀態機的實現方式 有限狀態機(Finite State Machine或者Finite State Automata)是軟件領域中一種重要的工具,很多東西的模型實際上就是有限狀態機。 FSM的實現方式: 1) switch/c

原创 DDB與DIB的區別2

 依賴於設備的位圖(DDB)DDB(Device-dependent bitmap)依賴於具體設備,這主要體現在以下兩個方面:DDB的顏色模式必需與輸出設備相一致。例如,如果當前的顯示設備是256色模式,那麼DDB必然也是256色的,即一

原创 模擬實現c語言中的動態內存分配malloc函數

動態存儲器分配器維護着一個進程的虛擬的存儲器區域,稱爲堆(heap)。分配器將堆視爲一組不同大小的塊的集合來維護。每個塊就是一個連續的虛擬存儲器片(chunk),要麼是已經分配的,要麼是空閒的。 我們這裏把內存堆空間模擬爲一個字節數組bu

原创 調色板的原理

PC機上顯示的圖象是由一個個像素組成的,每個像素都有自己的顏色屬性。在PC的顯示系統中,像素的顏色是基於RGB模型的,每一個像素的顏色由紅(B)、綠(G)、藍(B)三原色組合而成。每種原色用8位表示,這樣一個的顏色就是24位的。以此推算,

原创 動態鏈接共享庫的分析和使用

動態共享庫的工作方式與靜態鏈接庫不同。對於每個使用靜態鏈接庫的應用程序而言,在應用程序中都存在着靜態鏈接庫拷貝。但是動態共享庫卻不是這樣的,動態共享庫是被所有使用它的應用程序共享的,無論調用一個動態共享庫

原创 堆排序

堆是一種重要的數據結構,二叉堆是一顆完全二叉樹。可以用數組存放二叉堆,每個節點與數組中的存放位置對應。   這裏的堆排序算法是一種應用最大堆的原地排序算法(原地排序就是指不申請多餘的空間來進行的排序),效率爲O(nlgn)。   Max_

原创 烙餅排序

  星期五的晚上,一幫同事在希格瑪大廈附近的“硬盤酒吧”多喝了幾杯。程序員多喝了幾杯之後談什麼呢?自然是算法問題。有個同事說:“我以前在餐館打工,顧客經常點非常多的烙餅。店裏的餅大小不一,我習慣在到達顧客飯桌前,把一摞餅按照大小次序擺好