算法導論2nd 10.1-7

為什么80%的碼農都做不了架構師?>>> ??hot3.png

思路:兩個隊列q1和q2,兩個隊列指針pusher和poper分別指向q1和q2,push時調用pusher->enqueue,然后將poper里的元素全部dequeue并enqueue到pusher,最后交換pusher和poper。

#include <iostream>class Queue
{int *array;int head, tail, size;Queue(Queue &&q) = delete;Queue(const Queue &q) = delete;Queue &operator=(const Queue &q) = delete;public:Queue(int n){size = n + 1;array = new int [size];head = 0;tail = 0;}~Queue(){if (array){delete [] array;array = NULL;size = -1;head = -1;tail = -1;}}bool enqueue(int x){if (full())return false;array[tail++] = x;if (tail >= size)tail = 0;return true;}bool dequeue(int &res){if (empty())return false;res = array[head++];if (head >= size)head = 0;return true;}bool empty(){return head == tail;}bool full(){return (tail + 1) % size == head;}
};class Stack
{Queue q1, q2, *pusher, *poper;int size;public:Stack(int n) : q1(n), q2(n){pusher = &q1;poper = &q2;}bool push(int x){if (poper->full())return false;pusher->enqueue(x);while (poper->dequeue(x))pusher->enqueue(x);Queue *tmp = pusher;pusher = poper;poper = tmp;return true;}bool pop(int &res){return poper->dequeue(res);}
};int main()
{int t;Queue queue(4);queue.enqueue(1);queue.dequeue(t);queue.enqueue(2);queue.dequeue(t);queue.enqueue(3);queue.enqueue(4);queue.enqueue(5);queue.enqueue(6);queue.enqueue(7);while (queue.dequeue(t))std::cout << t << std::endl;queue.enqueue(8);queue.enqueue(9);queue.enqueue(10);queue.enqueue(11);queue.enqueue(12);while (queue.dequeue(t))std::cout << t << std::endl;Stack stack(4);stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);while(stack.pop(t))std::cout << t << std::endl;return 0;
}

?

轉載于:https://my.oschina.net/guzhou/blog/3049506

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536462.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云Windows2012 R2服務器IPV6配置記錄

要上蘋果APP&#xff0c;則必須要支持IPV6和HTTPS&#xff0c;阿里云本身沒有開放IPV6地址。因此需要進行IPV6的相關配置。查了很多IPV6的配置資料&#xff0c;最終選擇用HE進行IPV6設置。在這過程中遇到一些問題&#xff0c;以記錄下來以備注。 1、IPV6 Tunnel Broker設置 在H…

mycat 1.6.5 for mysql 8分表攻略

2019獨角獸企業重金招聘Python工程師標準>>> 簡述 mycat 對于 mysql 的支持有版本要求&#xff0c;目前 1.6.5 不支持 mysql 8.0 版本。因為mysql 8.0 的加密方式發生了變化。 mycat 1.6.5 連接 mysql 8.0 的兩個方式 mysql 8.0 采用兼容方式&#xff0c;&#xff0…

Funcode-貪吃蛇

自己編寫的一個小游戲&#xff0c;本來打算做貪吃蛇&#xff0c;結果不會使蛇的身子隨蛇頭方向改變而改變就換了種想法&#xff0c;最后變成了這樣一個另類的小游戲&#xff0c;“笑哭“&#xff0c;下面是程序的主要代碼&#xff0c;如果有興趣也可以下載完整程序代碼資源&…

mac 使用遠程連接

https://www.jianshu.com/p/9cc90361f37a轉載于:https://www.cnblogs.com/xiangsj/p/10876400.html

systemtap執行過程中報probe timer.profile registration error

probe timer.profile registration error 今天在執行火焰圖的過程中&#xff0c;代碼報錯&#xff0c;probe timer.profile registration error 經過查詢、分析可能是在該平臺該函數是不安全、不共享的。 將 probe timer.profile { 用該代碼替換即可 probe perf.sw.cpu_clock !…

(十三)java版spring cloud+spring boot+redis社交電子商務平臺-springboot集成spring cache...

電子商務社交平臺源碼請加企鵝求求&#xff1a;一零三八七七四六二六。本文介紹如何在springboot中使用默認的spring cache&#xff0c;聲明式緩存Spring 定義 CacheManager 和 Cache 接口用來統一不同的緩存技術。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使…

搭建gitlab及部署gitlab-runner

2019獨角獸企業重金招聘Python工程師標準>>> 1、搭建gitlab,之前yum安裝gitlab,安裝后一直報502錯誤,網上百度試過還是無法使用; 所以這次部署在docker里面;如下命令&#xff1a; docker run --detach --hostname gitlab.forebix.com --publish 4433:443 --publish …

母牛的故事

母牛的故事 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 有一對夫婦買了一頭母牛&#xff0c;它從第2年起每年年初生一頭小母牛。每頭小母牛從第四個年頭開始&#xff0c;每年年初也生一頭小母牛。請編程實現在第n年的時候…

軟件性能測試

通常&#xff0c;衡量一個軟件系統性能的常見指標有&#xff1a; 1、響應時間&#xff08;服務器端響應時間、網絡響應時間、客戶端響應時間&#xff09; 那客戶感受的響應時間其實是等于客戶端服務器端網絡響應時間 2、吞吐量 軟件系統在每單位時間內能處理多少個事務/請求/單…

王小二切餅

王小二切餅 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 王小二自夸刀工不錯&#xff0c;有人放一張大的煎餅在砧板上&#xff0c;問他&#xff1a;“餅不許離開砧板&#xff0c;切n(1<n<100)刀最多能分成多少塊&…

SmoothNLP 中文NLP文本處理工具 Python 實戰示范

SmoothNLP pythonJavaPython python interfaces for SmoothNLP 的 Python 接口&#xff0c; 支持自動下載底層jar包 &#xff0c;目前支持Python3 Pypi 官方安裝 pip3 install smoothnlp 復制代碼請注意使用python3安裝smoothnlp項目&#xff0c;當前版本 version0.2.4 如果您使…

本地緩存Caffeine

Caffeine 說起Guava Cache&#xff0c;很多人都不會陌生&#xff0c;它是Google Guava工具包中的一個非常方便易用的本地化緩存實現&#xff0c;基于LRU算法實現&#xff0c;支持多種緩存過期策略。由于Guava的大量使用&#xff0c;Guava Cache也得到了大量的應用。但是&#x…

《圖解HTTP》核心知識總結

HTTP協議的簡介 HTTP是超文本傳輸協議&#xff0c;用于客戶端和服務器端之間的通信&#xff0c;屬于TCP/IP中的應用層。 HTTP協議的基礎知識 客戶端和服務器端 客戶端是服務請求方&#xff0c;服務器端是服務提供方。 URI和URL URI:URI是統一資源標識符&#xff1b; URL:是統一…

1042: 篩法求素數

1042: 篩法求素數 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1387 Solved: 918 [Submit][Status][Web Board] Description 用篩法求之N內的素數。 Input N Output 0&#xff5e;N的素數 Sample Input 100 Sample Output 2 3 5 7 11 13 17 19 23 29 31 37 4…

狀態機解析請求行

微信公眾號&#xff1a;鄭爾多斯關注「鄭爾多斯」公眾號 &#xff0c;回復「領取資源」&#xff0c;獲取IT資源500G干貨。升職加薪、當上總經理、出任CEO、迎娶白富美、走上人生巔峰&#xff01;想想還有點小激動關注可了解更多的Nginx知識。任何問題或建議&#xff0c;請公眾號…

GO 從零開始的語法學習二

for循環 if條件里不需要括號 err ! nil 判斷是否為空 func main(){const filename "abc.txt"contents , err : ioutil.ReadFile(filename); err ! nil{fmt.Println(err)} else{fmt.Printf("%s\n",contents)} } 復制代碼if的條件里可以進行賦值if的條件里…

7個有用的Vue開發技巧

1 狀態共享 隨著組件的細化&#xff0c;就會遇到多組件狀態共享的情況&#xff0c;Vuex當然可以解決這類問題&#xff0c;不過就像Vuex官方文檔所說的&#xff0c;如果應用不夠大&#xff0c;為避免代碼繁瑣冗余&#xff0c;最好不要使用它&#xff0c;今天我們介紹的是vue.js …

Kewail-郵件短信接口的基礎教程

短信接口接入流程開始接入手機短信接口接入操作流程&#xff1a;申請短信簽名 → 申請短信模板 → 生成AccessKey → 下載DEMO/攢寫接口調用文檔 → 免費測試發送 → 購買發信量正式使用。一、申請短信簽名接入API接口&#xff0c;通過1069通道發送驗證碼等短信&#xff0c;必須…

傳百度無人車計劃分拆,百度回復:不實信息,目前未有分拆計劃

據《財經》報道&#xff0c;百度無人車項目正在籌備分拆(spin off)當中&#xff0c;且正在尋找外部投資機構融資。一位接近百度無人車項目人士對《財經》表明&#xff0c;分拆就是時間問題。對于無人車項目分拆一事&#xff0c;百度對 36 氪表示&#xff0c;媒體報道不實。目前…

又見回文

又見回文 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description “回文串”是一個正讀和反讀都一樣的字符串&#xff0c;比如“level”或者“noon”等等就是回文串。現在呢&#xff0c;就是讓你判斷輸入的字符串是否是回文串。 Inpu…