原创 每日一題22:Deque與Trait

雖然之前寫過一個Deque,但是那個屬於C與C++混合的產品,近來在學習C++模板,所以寫了一個C++版,同時第一次嘗試使用Trait技術。 本來已經寫好的文章,發表之後丟失了,好鬱悶,沒心情再寫了,貼貼代碼吧。 這個Trait

原创 每日一題14:數組與鏈表組合方案下的Josephus問題

愚人節快樂!幾天沒寫程序,今天繼續!Josephus問題是說N個人圍成一個圈傳熱土豆,先約定一個數M,當傳遞了M次的時候拿着土豆的人出局,然後將土豆給出局人的下一個人,遊戲繼續,直到最後只剩下一個人,求出局人的序列(按出局順序排列

原创 每日一題16:在一個數組中實現兩個棧

在一個數組中實現兩個棧,當數組未填滿是任一個棧不能溢出。解法是將一個棧從頭開始往後插入,而另一個從後往前插入,如果插入一個元素後,兩個棧的top指針未相遇,則表示數組未滿,棧沒有溢出。 #include "stdafx.h" #i

原创 每日一題23:查找樹基本操作

距離上一篇博客已經過去了四天,“每日一題”這個標題給的壓力還是挺大的,這四天一直在學習查找樹,同時更進一步地接觸STL,所以更新慢了。查找樹的刪除操作整整花了一天才學會,比較耗時,另外兩個有點麻煩的地方是迭代器的前進與後退,需要畫

原创 每日一題21:從0打印到具有n位整數的最大數

該題目的難點在於n可能很大,超過了整數表示的範圍,所以一般有兩種思路,一種是用字符串表示整數,並實現++操作符,另一種是把該題目當做排列組合來做,使用遞歸可以實現,下面給出使用遞歸實現的代碼: void __print(char

原创 《Effective C++》重點摘要(一)

開篇的話 這個星期不再發布關於數據結構的博客,想把半個月來看的書做一些總結,整理整理,第一本就是《Effective C++》。第一次看這本書是一年多前,準備考研複試的時候,隨後陸陸續續,這個月再來看算是第三遍了吧,之前沒有看過《

原创 未完成的2014

說過去了一年,總感覺不管手上有什麼事,都是要告一段落的時候了,可是當一月一日來臨的那天,我還在學校裏準備即將到來的考試,而回家的票定在了二月八號,所以在我的觀念裏,這一年還沒過完,我的2014延伸到現在,並且還要往前走一段纔算過去

原创 每日一題15:雙端隊列與自調整表

雙端隊列是一種插入和刪除可以既可以在表頭也可以表尾進行的一種數據結構,四種基本操作分別爲: push:在表頭插入 pop:在表頭刪除 insert:在表尾插入 eject:在表尾刪除 每一種操作的複雜度都爲O(1)。通過

原创 關於sizeof和memset/memcpy的一些事

首先,sizeof是一個操作符,不是一個函數,但是當操作數爲類型名稱時需要用小括號將類型名稱包圍起來(操作數爲變量時不需要),這一規則使得sizeof看起來想一個函數一樣。其次如果sizeof的操作數爲靜態數組名時,得到的結果是整

原创 每日一題11:替換字符串中的空格

用指定的字符或字符串替換某個字符串中出現的所有空格,當用字符替換字符是,自然是很簡單的,但是當使用字符串替換字符時,如果還是從前往後遍歷,遇到指定字符就將其後所有字符往後移出足夠空間的話,當字符串中的空格很多時,反覆的移動字符會帶

原创 計算機科學箴言集

這是摘抄自《編程珠璣II》第六章的一些比較有趣的話,加上了一些自己的感想或理解。 編碼篇 迴歸測試能將測試區間減半。 —Larry Bernstein,貝爾通信研究院 Π秒就是一個納世紀。

原创 每日一題20:與C++11的第一次邂逅——可變參模板與C#委託模擬

這篇文章本來是前天發的,但是不知道爲什麼CSDN上沒有顯示,可能是我沒發,記錯了。又由於沒有留底稿,還是重寫一下吧,也爲知己不留底稿的惡習做個標記。 之所以接觸C++11是因爲自己前天突發奇想想用C++來模擬一下C#裏的委託,但

原创 每日一題13:多項式的(基於鏈表實現)簡單運算

多項式的每一項需要兩個參數,即係數與指數。描述多項式的一種方式是用數組的下標表示項的指數,而用數組存儲的元素表示相應項的係數。這樣表示的多項式看起來很簡單,但是在很多計算中卻顯得很不方便,這種不方便主要出現”在稀疏的“多項式中(比

原创 每日一題18:棧

用C++寫了一個棧模板,其間用了一些《Effective C++》的準則,記錄在這裏嘍。這個類還沒有做到異常安全,以後改進! Stack.h文件。 #ifndef _STACK_H_ #define _STACK_H_ nam

原创 每日一題10:在排序的二維數組中查找

排序的二維數組是這樣的:在每一行中元素是遞增的,在每一列中元素也是遞增的,比如: 11 34 35 47 51 13 37 40 52 61 19 42 50 79 80 給定一個值,判斷其是否在這樣排序的二維數組中。