資料結構階段總結(二)

2021-10-01 03:12:20 字數 2061 閱讀 3466

棧和佇列

在棧(stack)中,被刪除的元素是最近新增的元素,所以棧的實現方式是後進先出(last-in, first-out);

在佇列中,被刪除的元素是最開始新增的的元素,也就是在動態集合中存放時間最長的那個元素,所以佇列的實現方式是先進先出(first-in,first-out)。

在棧的資料結構中,新增元素的操作被稱之為入棧(push),刪除元素的操作被稱之為出棧,也可以稱為彈出(pop)。如果棧中不存在任何乙個元素,那麼這個棧被稱為空棧。

棧的抽象資料型別定義

adt stack

data

棧中元素具有相同型別及後進先出特性,

相鄰元素具有前驅和後繼關係

operation

initstack

前置條件:棧不存在

輸入:無

功能:棧的初始化

輸出:無

後置條件:構造乙個空棧

destroystack

前置條件:棧已存在

輸入:無

功能:銷毀棧

輸出:無

後置條件:釋放棧所占用的儲存空間

push

前置條件:棧已存在

輸入:元素值x

功能:在棧頂插入乙個元素x

輸出:如果插入不成功,丟擲異常

後置條件:如果插入成功,棧頂增加了乙個元素

pop前置條件:棧已存在

輸入:無

功能:刪除棧頂元素

輸出:如果刪除成功,返回被刪元素值,否則,丟擲異常

後置條件:如果刪除成功,棧減少了乙個元素

gettop

前置條件:棧已存在

輸入:無

功能:讀取當前的棧頂元素

輸出:若棧不空,返回當前的棧頂元素值

後置條件:棧不變

empty

前置條件:棧已存在

輸入:無

功能:判斷棧是否為空

輸出:如果棧為空,返回1,否則,返回0

後置條件:棧不變

endadt

鏈棧

#include

struct node

;template

<

class

t>

class

linkstack

~linkstack()

;void

push

(t x)

; t pop()

; t gettop()

intempty()

private

: node *top;};

template

<

class

t>

void linkstack

::push

(t x)

///入棧

template

<

class

t>

t linkstack

::pop()

///出棧

佇列佇列:只允許在一端進行插入操作,而另一端進行刪除操作的線性表。

空佇列:不含任何資料元素的佇列。

允許插入(也稱入隊、進隊)的一端稱為隊尾,允許刪除(也稱出隊)的一端稱為隊頭。

佇列的操作特性:先進先出(fifo,lilo)

**實現

struct node

;class

linsta

cout<

;linsta::

linsta()

void linsta::

pushd

(int x)

void linsta::

popd()

}

資料結構(C C )課程階段總結(七)

具體實現 執行結果 總結本次實驗中抽象資料型別定義如下 adt sparsematrix 資料關係 r row col 基本操作 createtsmatrix tsmat,s,row,col 初始條件 s為稀疏矩陣,row為行數,col為s的列數。操作結果 用三元組表tsmat儲存s,並返回ok。c...

資料結構 總結

不知不覺間,跟隨賀老師的步伐已經乙個學期了。記得大一的時候,那個時候還沒有接觸到計算機專業的知識,那個時候便聽說了賀老師,那個時候對於老師厲害還沒有什麼概念,只是覺得可能是老師比較博學,比較深層次的了解一些計算機的內容,卻從未想過,這種厲害更加深入到了學生的腦海中,甚至可能會對乙個學生,一群學生,越...

資料結構總結

本文為總結了資料結構知識點,以便複習 本文為總結了資料結構知識點,以便複習 1.緒論 2.線性表 資料結構三要素 邏輯結構 儲存結構 物理結構 資料運算。其中邏輯結構包括線性結構 線性表 棧 佇列 和非線性結構 樹 圖 集合 儲存結構主要有 順序儲存 鏈式儲存 索引儲存 雜湊儲存 又稱hash儲存 ...