91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

順序棧的基本操作:初始化、進棧、出棧、讀棧頂元素

發布時間:2020-07-31 19:20:01 來源:網絡 閱讀:2381 作者:巖梟 欄目:編程語言

順序棧:利用一組地址連續的存儲單元依次存放自棧底到棧頂的數據元素,同時由于棧操作的特殊性,還必須附設一個位置指針top(棧頂指針)來動態地指示棧頂元素在順序棧中的位置。通常以top=-1表示空棧。

代碼如下:

#include<iostream>

using namespace std;

#define  TRUE 1

#define  FALSE 0

//順序棧的存儲結構

#define Stack_Size 50 //設棧中元素個數為50

typedef struct

{

int elem[Stack_Size];//用來存放棧中元素的一維數組

int top;//用來存放棧頂元素的下標,top=-1表示空棧

}SeqStack;


//初始化順序棧

void InitStack(SeqStack *S)

{

S->top = -1;//構造一個空棧

}


//順序棧進棧運算,首先判斷棧是否已滿,若棧已滿,還要進棧就會發生上溢

int Push(SeqStack *S,int x)//將x置入S棧新棧頂

{

if (S->top == Stack_Size - 1)//棧已滿

{

return FALSE;

}

S->top++;

S->elem[S->top] = x;//把x入棧

return TRUE;

}


//順序棧出棧運算,首先判斷棧是否為空,若棧空,還要出棧就會發生下溢

int Pop(SeqStack *S, int *x)//將S棧頂元素彈出,放到x所指的存儲空間中帶出

{

if (S->top == - 1)//棧為空

{

return FALSE;

}

else

{

*x = S->elem[S->top];

S->top--;//修改棧頂指針

return TRUE;

}

}


//順序棧讀棧頂元素運算

int GetPop(SeqStack *S, int *x)//將棧S棧頂元素讀出,放到x所指的存儲空間中,棧頂指針保持不變

{

if (S->top == -1)//棧為空

{

return FALSE;

}

else

{

*x = S->elem[S->top];

return TRUE;

}

}

注意:在實現GetPop操作時,也可將參數SeqStack *S改為SeqStack S,將傳地址方式改為傳值方式。傳值比傳地址容易理解,但傳地址比傳值更節省空間與時間。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

醴陵市| 湖南省| 信丰县| 石楼县| 洪泽县| 合肥市| 乌鲁木齐县| 沁阳市| 普兰店市| 莱西市| 石楼县| 县级市| 郁南县| 尚义县| 渑池县| 镇雄县| 旅游| 奉化市| 桃江县| 伊吾县| 昔阳县| 沂源县| 乐清市| 白城市| 七台河市| 莱阳市| 明水县| 温泉县| 吉木乃县| 九寨沟县| 砚山县| 汶上县| 宁武县| 绿春县| 弋阳县| 右玉县| 铜梁县| 庐江县| 武鸣县| 忻城县| 宁河县|