實現乙個佇列 微軟面試100題 第三十四題

2021-06-26 19:46:54 字數 1021 閱讀 5664

題目要求:

實現乙個佇列。佇列的應用場景是:乙個生產者執行緒將int型的數入列,乙個消費者執行緒將int型的數出列。

參考資料: 程式設計之美1.10

題目分析:

可以按照作業系統中的生產者與消費者模型來實現**,大致思路如下:

void producer(void)

}void consumer(void)

}

**實現:

**:思路與上面的分析有些不同,可以參考**和除錯來理解。

/*-----------------------------

-------------------------------*/

#include #include #include #include #include using namespace std;

handle g_hsemaphore = null; //訊號量

const int g_i32pmax = 100; //生產(消費)總數

std::queueg_queuepv; //生產入隊,消費出隊

//生產者執行緒

unsigned int __stdcall producerthread(void* pparam)

return 0;

}//消費者執行緒

unsigned int __stdcall customerthread(void* pparam)

//消費結束

cout << "working end." << endl;

return 0;

}void pvoperationgo()

int main(void)

微軟面試100題之第6題

給你10分鐘時間,根據上排給出十個數,在其下排填出對應的十個數 要求下排每個數都是先前上排那十個數在下排出現的次數。上排的十個數如下 0,1,2,3,4,5,6,7,8,9 舉乙個例子,數值 0,1,2,3,4,5,6,7,8,9 分配 6,2,1,0,0,0,1,0,0,0 0在下排出現了6次,1...

微軟面試100題演算法(1)實現乙個字元匹配

問題 實現乙個挺高階的字元匹配演算法 給一串很長字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3這些都要找出來 其實就是類似一些和諧系統。分析 這題的真正意思就是,給你乙個目標串,如 123 只要乙個字串裡面同時包含1 2和3,那麼這個字串就匹配了。系統越和諧,說明錯殺的可能行...

第3題 兩個佇列生成乙個棧

想要實現兩個佇列生成乙個棧,需要先了解佇列和棧的特性 使用兩個佇列生成乙個棧的實現思路為 實現如下 usr bin env python coding utf 8 import queue class stack object def init self self.master queue queu...