演算法實習準備之一 資料結構複習(二)

2021-10-18 06:45:22 字數 1562 閱讀 7606

棧:只允許在一端(棧頂)進行插入或刪除操作的線性表。後進先出

順序棧:棧的順序儲存

elemtype data[maxsize]

;int top;

s

.top==-1

;//棧空條件

s.top==maxsize-1;

//棧滿條件

s.length==

s.top+1;

//棧長

s

.data[++s

.top]

=x;//進棧x=s

.data[

s.top--];

//出棧

鏈棧:棧的鏈式儲存

優點:便於多個棧共享儲存空間和提高其效率,且不存在棧滿上溢的情況。

佇列:只允許在表的一端(隊尾)進行插入,而在表的另一端(對頭)進行刪除的線性表。先進先出

順序儲存

兩個指標front和rear分別指示隊頭元素和隊尾元素的位置。

q

.front==

q.rear==0;

//隊空條件

進隊:隊不滿時,先送值到隊尾元素,再將隊尾指標加1。

出隊:隊不空時,先取隊頭元素值,再將隊頭指標加1。

迴圈佇列

q

.front==

q.rear;

//隊空條件(q

.rear+1)

%maxsize==

q.front;

//隊滿條件

q.length=(q

.rear-

q.front+maxsize)

%maxsize;

//佇列長度

q.front=(q

.front+1)

%maxsize;

//隊首指標進1

q.rear=(q

.rear+1)

%maxsize;

//隊尾指標進1

鏈式儲存

q

.front==

null&q

.rear==

null

;//隊空條件

1.棧在括號匹配中的應用:左括號入棧。

2.棧在表示式求值中的應用:使字尾表示式中的運算元進棧,出現操作符時退棧棧頂的兩個運算元,將計算結果作為運算元進棧。

3.棧在遞迴中的應用。

4.佇列在層次遍歷中的應用:二叉樹的層次遍歷(頭結點入佇列,左右子樹進佇列)。

5.佇列在計算機系統中的應用:

1)解決主機與外部裝置之間速度不匹配的問題,用佇列實現乙個資料緩衝區。

2)解決由多使用者引起的資源競爭問題,作業系統用佇列對使用者的請求進行排序,每次把cpu分配給隊首請求的使用者使用。

演算法實習準備之一 資料結構複習(一)

ps畢業要求的小 已經投出去啦,目前的任務就是複習演算法基礎知識準備實習,為了方便回顧內容和分享,我會將相關知識梳理並總結在csdn上 資料結構的三要素 邏輯結構 物理結構 資料運算。邏輯結構 線性結構 線性表 棧 佇列 非線性結構 樹 圖 集合。物理結構 順序儲存 鏈式儲存 索引儲存 雜湊儲存。1...

資料結構複習篇之一 資料結構相關知識

1.資料 是資訊的載體,是描述客觀事物屬性的數 字元以及所有能輸入到計算機中被電腦程式識別和處理的符號的集合 2.資料元素 是資料的基本單位,通常作為乙個整體進行考慮和處理。3.資料物件 具有相同性質的資料元素的集合,是資料的乙個子集。4.資料型別 1 原子型別 其值不可再分的資料型別 2 結構型別...

redis 學習之一(資料結構)

儲存物件的兩種方式 儲存序列化之後的物件 jedis.set user liudehua obj getbytes getbytesbyproduct person user liudehua obj getbytes fasdf 不能用這種形式 byte productbytes jedis.ge...