一、棧和佇列的簡介
先進後出(限定性操作)
棧具有後進先出的特性,如果問題解決具有先進後出的天然特性的話,則求解的演算法就要使用棧。
先進先出(限定性操作)
佇列具有先進先出的特性,如果問題解決具有先進先出的特性的話,則求解的演算法就要使用佇列。
二、對棧和佇列的認識
棧:限制在表的一端進行插入和刪除運算的線性表
棧頂和棧底:允許插入、刪除的一端稱為棧頂,另一端稱為棧底。
空棧:表中沒有元素稱為空棧
棧的運算規則:後進先出
新增元素:入棧或壓棧
刪除元素:出棧
佇列:運算受限的線性表。它只允許在表的一端進行插入,而在另一端進行刪除。
隊頭和隊尾:允許刪除的一端稱為隊頭,允許插入的一端稱為隊尾
佇列的運算規則:先進先出
佇列的儲存結構:
順序對壘-----迴圈佇列
鏈佇列三、棧與佇列的相同點和不同點
二分查詢法就是在一組已經完成排序的資料(array)中,如果需要查詢某一特定資料(value)是否存在的時候,設定兩個上下限(max,min)開始的時候在陣列的最前和最後,把需要查詢的值跟這兩個位置的中間位置資料(array[(max+min)/2])進行對比,如果value >array[(min+max)/2] ,則縮小範圍使得min=(min+max)/2,反之,如果valueint binary(t arr, int size, t value)
else
mid=(max+min)/2;
std::cout<< "max: "<>1」相當於「/2」
int l=1,r=11;
while(l<=r)
一、課堂總結
第二週學習總結
在本週,學習了物件導向的三大特徵,封裝,多型,繼承 讓我感覺到學習 的不易,基礎實在是很重要,現記錄本週學習過程 現的問題以及解決注釋。1.構造方法與成員方法的區別 成員方法 一般實現對類中成員變數的操作,提供某些功能,有返回值型別,通過物件呼叫!構造方法 一般是給物件的資料進行初始化,沒有返回值,...
第二週學習總結
本週主要學習的是 1棧與佇列 2二分法 3位運算 首先要明白棧和佇列之間的區別,與棧相比佇列是先進先出的,先進去的就會先出來,而棧則與之不同,棧的進出順序與佇列不同並不是先進先出的有序關係,二十順序不定,候後進的可能先出。一般線性表 棧 邏輯結構 一對一 一對一 儲存結構 順序表 鍊錶 順序棧 鏈棧...
第二週學習總結
貪心演算法的分類 類中的建構函式以及new和delete 感悟1 追求最大利潤 這種題目的一般會有利潤和時間兩個變數 解決思想一般是兩種,第一種是求出最大的平均利潤,第二種是按 排序追求最大利潤。在本週所做的b題屬於第二種,每個商品都有最晚賣出時間與利潤,每天只能賣乙個商品,而我在這個題中一開沒讀懂...