中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C語(yǔ)言棧實(shí)現(xiàn):順序棧-創(chuàng)新互聯(lián)

目錄:
  • 概念理解:
  • 順序棧結(jié)構(gòu)體:
  • 初始化順序棧:
  • 判???:
  • 入棧:
  • 出棧:
  • 讀棧頂元素:
  • 測(cè)試:

創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序設(shè)計(jì)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10年以來(lái),已經(jīng)為上1000家成都玻璃貼膜各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上1000家客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。概念理解:

棧是一種操作受限的線性表,LIFO。
棧:邏輯結(jié)構(gòu)
順序棧:使用順序存儲(chǔ)方式實(shí)現(xiàn)的棧

??諚l件:S.top == -1
棧滿條件:S.top == MaxSize-1
棧長(zhǎng):S.top+1
非空條件下,top始終指向棧尾元素。

順序棧結(jié)構(gòu)體:
#define MaxSize 50
//棧的順序存儲(chǔ)結(jié)構(gòu) 
typedef struct{//數(shù)據(jù)用數(shù)組存放 
	int data[MaxSize];
	//存儲(chǔ)數(shù)組最后一個(gè)元素的下標(biāo),代表?xiàng)m斨羔?
	int top;
} SqStack;
初始化順序棧:
//初始化順序棧,將棧頂指針置為-1 
void InitStack(SqStack &S){S.top = -1; 
}
判???:
//判棧空 
bool StackEmpty(SqStack S){if(S.top == -1){return true;
	}
	return false;
}
入棧:
//入棧 
bool Push(SqStack &S,int x){//判斷棧滿,S.top范圍:-1,0~49 
	if(S.top == MaxSize-1){return false;
	}
	//首先top+1,然后入棧 
	S.data[++S.top] = x;
	return true;	
}
出棧:
//出棧,只是邏輯結(jié)構(gòu)上的出棧,top--,存儲(chǔ)結(jié)構(gòu)上看出棧的元素還在內(nèi)存中 
bool Pop(SqStack &S,int &x){//判斷棧滿,S.top范圍:-1,0~49 
	if(S.top == MaxSize-1){return false;
	}
	//首先出棧,然后top-1 
	S.data[S.top--];
	return true;
}
讀棧頂元素:
//讀棧頂元素 
bool GetTop(SqStack S,int &x){//判???
	if(S.top == -1){return false;
	}
	//top即棧頂元素的下標(biāo) 
	x = S.data[S.top];
	return true; 
}
測(cè)試:
#include#include//使用malloc和free關(guān)鍵字需要引入這個(gè)庫(kù)

#define MaxSize 50
//棧的順序存儲(chǔ)結(jié)構(gòu) 
typedef struct{//數(shù)據(jù)用數(shù)組存放 
	int data[MaxSize];
	//存儲(chǔ)數(shù)組最后一個(gè)元素的下標(biāo),代表?xiàng)m斨羔?
	int top;
} SqStack;

//初始化順序棧,將棧頂指針置為-1 
void InitStack(SqStack &S){S.top = -1; 
}

//判???
bool StackEmpty(SqStack S){if(S.top == -1){return true;
	}
	return false;
}

//入棧 
bool Push(SqStack &S,int x){//判斷棧滿,S.top范圍:-1,0~49 
	if(S.top == MaxSize-1){return false;
	}
	//首先top+1,然后入棧 
	S.data[++S.top] = x;
	return true;	
} 

//出棧,只是邏輯結(jié)構(gòu)上的出棧,top--,存儲(chǔ)結(jié)構(gòu)上看出棧的元素還在內(nèi)存中 
bool Pop(SqStack &S,int &x){//判斷棧滿,S.top范圍:-1,0~49 
	if(S.top == MaxSize-1){return false;
	}
	//首先出棧,然后top-1 
	S.data[S.top--];
	return true;
} 

//讀棧頂元素 
bool GetTop(SqStack S,int &x){//判???
	if(S.top == -1){return false;
	}
	//top即棧頂元素的下標(biāo) 
	x = S.data[S.top];
	return true; 
}

//打印棧 
void Print(SqStack S){printf("棧內(nèi)元素:");	
	for(int i=0;i<=S.top;i++){printf("%d ",S.data[i]);
	}
	printf("棧頂指針:%d\n",S.top);
} 

int main(){//聲明一個(gè)結(jié)構(gòu)體類型的順序棧元素 
	SqStack S;
	//初始化 
	InitStack(S);
	printf("當(dāng)前棧是否為空:%d\n",StackEmpty(S));
	//入棧
	Push(S,3); 
	Push(S,2);
	Push(S,4);
	Push(S,6);	
	printf("當(dāng)前棧是否為空:%d\n",StackEmpty(S));
	//讀棧頂元素
	int x = 0; 
	GetTop(S,x);
	printf("當(dāng)前棧頂元素:%d\n",x);
	//出棧
	Pop(S,x);
	printf("出棧元素:%d\n",x);
	GetTop(S,x);
	printf("當(dāng)前棧頂元素:%d\n",x);
	//打印棧
	Print(S); 
}

在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前名稱:C語(yǔ)言棧實(shí)現(xiàn):順序棧-創(chuàng)新互聯(lián)
路徑分享:http://m.rwnh.cn/article14/espge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
通河县| 松桃| 孝昌县| 苗栗市| 涞源县| 十堰市| 康保县| 宁津县| 黄平县| 泽州县| 堆龙德庆县| 神农架林区| 旌德县| 汉沽区| 枣阳市| 双流县| 哈密市| 张家港市| 乐昌市| 大足县| 安顺市| 栾川县| 乌拉特前旗| 越西县| 津市市| 淮安市| 孙吴县| 北川| 惠州市| 台中市| 鄂托克旗| 鲁山县| 赫章县| 海阳市| 荔浦县| 玉林市| 乐东| 陆川县| 封丘县| 彭泽县| 宾阳县|