/*只用乙個陣列實現三個棧*/
/*方法1,每個棧都有乙個棧頂,三部分平分陣列*/
#define size 100
template
class istack
~istack()
void push(int stack_num, t n)
t pop(int stack_num)
int top(int stack_num)
bool empty(int stack_num)
};/*實現乙個棧,除了push和pop操作,還要實現min函式以返回棧中的最小值。 push,pop和min函式的時間複雜度都為o(1)。*/
/*push的時候可以用乙個變數來儲存當前最小值,但是在pop時就比較麻煩,因為不知道pop之後的最小值*/
/*可以每乙個結點中都push了這個結點時的最小值*/
/*但是這存在乙個問題,有可能有資料冗餘,多個結點的最小值都是相等的.
更好的解決辦法是使用另乙個小堆疊來儲存最小值,每一次pop時都會與當前值進行比較*/
template
class
stack
~stack()
void push(t number)
t pop()
bool empty()
t top()
};class minstack
int pop()
bool empty()
int min()
};/*使用兩個棧實現乙個佇列myqueue。*/
/*思路是入佇列時壓入到a棧中,出佇列時將b中的出棧,如果b為空,則將a出棧,壓入b*/
template
class queue_stack
t pop()
}return dst.pop();
}};/*寫程式將乙個棧按公升序排序。對這個棧是如何實現的,你不應該做任何特殊的假設。 程式中能用到的棧操作有:push | pop | peek | isempty。*/
stack
ssort(stack
s)t.push(data);
}return t;
}/*方案2:
使用乙個優先佇列來為出棧的元素排序,原棧中的元素不斷出棧然後插入優先佇列, 直到原棧為空。然後再將優先佇列中的元素不斷壓回原棧,這樣操作後, 棧中的元素便有序化了。
**如下:
*/#include
#include
#include
#include
using
namespace
std;
void qsort(stack
&s)
while (!q.empty())
}
留給我自己的一些小小的話
還是那句老話吧,我也曾能忍受無邊的黑暗,直到我見到了光明。很多的時候都在後悔沒能更加地努力,自己還有很多想學的東西都沒能學會,就不得不離開了。很大的程度上,這都是我自己的原因。因為我自己的懦弱,傷害了自己,也傷害了身邊的人。總是對自己的無能感到憤怒,卻又沒有任何現實上的改變。拿起劍,就意味著你要保衛...
MYSQL8 0 13的一些小小的問題及處理方法
希望不要活得那麼累 1.mysql8.0.13安裝好了有預設的密碼,在data檔案的.err結尾的檔案裡,開啟去找。2.mysql裝好了可以登入,命令是 mysql u root p,輸入預設密碼,然後改密碼 只有改了預設密碼才能用 命令是 alter user root localhost ide...
小小的疑問和小小的想法
1.事情交與你手,是否應該盡職盡責?大部分人說,你肯定要盡職盡責,少部分人會說這個可以不。我也一直認為應該盡職盡責,但是部分原因導致不會努力去做,如下所述 a 此事責任權是否在於你 如果我做這件事完全不用承擔任何責任,那我根本不會去努力去做,做了之後沒有任何感覺,做與不做的區別在於,少了參與做此事的...