真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言判斷棧是否為滿(mǎn)函數(shù) 判斷棧滿(mǎn)的條件

C語(yǔ)言?。。?/h2>

#define?STACK_SIZE?100?//定義棧容量為100

仙桃網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),仙桃網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為仙桃近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的仙桃做網(wǎng)站的公司定做!

int?contents[STACK_SIZE];?//定義數(shù)組contents用作棧

int?top?=?0;?//定義并初始化棧頂指針為0

//函數(shù)作用:清空棧

void?make_empty(void)

{

top?=?0;?//直接將棧頂指針置0

}

//函數(shù)作用:判斷棧是否為空

bool?is_empty(void)

{

return?top?==?0;?//返回top是否等于0

}

//函數(shù)作用:判斷棧是否已滿(mǎn)

bool?is_full(void)

{

return?top?==?STACK_SIZE;?//返回top是否等于STACK_SIZE

}

//函數(shù)作用:向棧中壓入一個(gè)元素i

void?push(int?i)

{

if(is_full())?//如果棧已滿(mǎn)

stack_overflow();?//執(zhí)行棧上溢操作

else?//否則可以入棧

contents[top++]?=?i;?//向棧中壓入i,然后將棧頂指針+1

}

//函數(shù)作用:彈出棧頂元素并返回

int?pop(void)

{

if(is_empty())?//如果棧為空

stack_underflow();?//執(zhí)行棧下溢操作

else?//否則可以出棧

return?contents[--top];?//返回棧頂元素,然后將棧頂指針-1

}

c語(yǔ)言鏈條棧怎么判斷滿(mǎn)了沒(méi)

因?yàn)槎褩J擎準(zhǔn)綏?,是否滿(mǎn)棧取決于堆存儲(chǔ)的大小。堆空間耗盡時(shí),可以狹義地理解為棧滿(mǎn)。

那么在編程時(shí),可以用一個(gè)變量保存棧元素的個(gè)數(shù)。棧是否滿(mǎn),取決于申請(qǐng)動(dòng)態(tài)內(nèi)存時(shí)的返回值,如

Stack

*p

=

(Stack

*)malloc(sizeof(Stack));,若(p

==

NULL),則棧滿(mǎn)。

求用C語(yǔ)言編寫(xiě)一個(gè)程序?qū)崿F(xiàn)順序棧初始化,出棧,入棧,判???,判棧滿(mǎn),急需,謝謝

#define STACK_SIZE 100

#define PUSH_POP_SUCCESS 1

#define PUSH_POP_ERROR 0

struct _stackbuf {

int _collection[STACK_SIZE];

int _top;

};

typedef struct _stackbuf S_STACK;

typedef unsigned int u_int_f;

// 入棧

u_int_f push(S_STACK *stack, int d){

if (stack-_top = STACK_SIZE) return PUSH_POP_ERROR;

stack-_collection[stack-_top++] = d;

return PUSH_POP_SUCCESS;

}

// 出棧

u_int_f pop(S_STACK *stack, int *e){

if (!stack-_top) return PUSH_POP_ERROR;

*e=stack-_collection[--(stack-_top)];

return PUSH_POP_SUCCESS;

}

int main(){

S_STACK stack = { {0},0 };

push(stack, 1);

push(stack, 2);

push(stack, 3);

int gv = 0;

pop(stack, gv);

printf("%d\n", gv);

system("PAUSE");

return 0;

}

分別寫(xiě)函數(shù)實(shí)現(xiàn)初始化棧、入棧、出棧、判斷???、判斷棧滿(mǎn)。例如入棧序列為1 2 3 4 5,出棧則為5 4 3 2 1

1、初始化棧

/*功能:初始化棧

*函數(shù)名:InitStack

*返回值:void

*/

void InitStack(stack *p)

{

p-top=-1;

}

2、判斷棧為滿(mǎn)

/*功能:判斷棧為滿(mǎn)

*函數(shù)名:IsFull

*返回值:為滿(mǎn)——真1,非滿(mǎn)——假0

*/

BOOL IsFull(stack *p)

{

if(MAXSIZE-1==p-top)

{

return TRUE;

}else

{

return FALSE;

}

}

3、判斷棧為空

/*功能:判斷棧為空

* 函數(shù)名:IsEmpty

*返回值:為空——真1,非空——假0

*/

BOOL IsEmpty(stack *p)

{

if(-1==p-top)

{

return TRUE;

}else

{

return FALSE;

}

}

4、進(jìn)棧

/*功能:進(jìn)棧

*函數(shù)名:push

*返回值:成功TRUN 失敗FALSE

*注:不能為滿(mǎn),否則進(jìn)棧失敗

*/

BOOL push(stack *p,StackType data)//p=s

{

//判斷棧是否為滿(mǎn)

if(TRUE==IsFull(p))//為滿(mǎn)

{

return FALSE;//返回失敗

}

p-buf[++p-top]=data;

return TRUE;//返回成功

}

5、出棧

/*功能:出棧

*函數(shù)名:pop

*返回值:出棧成功TRUE 失敗FALSE

*/

BOOL pop(stack *p,StackType *pd)

{

//判斷是否為空,為空出棧無(wú)意義

if(TRUE==IsEmpty(p))

{

return FALSE;//出棧失敗

}

*pd=p-buf[p-top--];//優(yōu)先級(jí)-大于--

return TRUE;//出棧成功

}

擴(kuò)展資料:

主函數(shù):

void main()

{

//定義變量:類(lèi)型 變量名

//struct st s;

struct st s;//分配空間

//初始化

InitStack(s);

int num=0;

printf("請(qǐng)輸入");

scanf("%d",num);

//求二進(jìn)制

while(num!=0)

{

//將余數(shù)入棧

if(FALSE==push(s,num%2))

{

return;//結(jié)束

}

num/=2;

}

//將二進(jìn)制結(jié)果取出來(lái)

char value=0;

while(FALSE!=pop(s,value))

{

printf("%d",value);

}

printf("\n");

}


分享文章:c語(yǔ)言判斷棧是否為滿(mǎn)函數(shù) 判斷棧滿(mǎn)的條件
路徑分享:http://weahome.cn/article/hhcphj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部