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

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

c語(yǔ)言出棧pop函數(shù) 出棧函數(shù)pops返回的是什么值

C語(yǔ)言 出棧操作Pop(struct SqStack * MyStack, ElemType *e

#include?stdio.h

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有永興免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

#include?conio.h

#include?stdlib.h

#define?elemType?int /*?鏈棧元素?cái)?shù)據(jù)類型?*/

#define?SNODE_SIZE?sizeof?(struct?sNode) /*?鏈棧結(jié)點(diǎn)空間大小?*/

#define?status?int /*?狀態(tài)型變量?*/

#define?OVERFLOW?-1 /*?內(nèi)存溢出狀態(tài)碼?*/

#define?ERROR?0 /*?錯(cuò)誤狀態(tài)碼?*/

#define?OK?1 /*?正確狀態(tài)碼?*/

/*?鏈棧結(jié)點(diǎn)存儲(chǔ)結(jié)構(gòu)?*/

typedef?struct?sNode?{

elemType?data;

struct?sNode?*next;

}?sNode,?*sNodePtr;

/*?鏈棧存儲(chǔ)結(jié)構(gòu)?*/

typedef?struct?linkStack?{

sNodePtr?top;?/*?棧頂指針?*/

}?linkStack;

/*?初始化?*/

/*?操作結(jié)果:構(gòu)造一個(gè)帶頭結(jié)點(diǎn)的空鏈棧S?*/

void?initStack?(linkStack?*S)?{

S-top?=?(sNodePtr)?malloc?(SNODE_SIZE);?/*?產(chǎn)生頭結(jié)點(diǎn),棧頂指針指向此頭結(jié)點(diǎn)?*/

if?(!S-top)?/*?內(nèi)存分配失敗?*/

exit?(OVERFLOW);

S-top-next?=?NULL;

}

/*?銷毀?*/

/*?初始條件:鏈棧S已存在。操作結(jié)果:銷毀鏈棧S?*/

void?destroyStack?(linkStack?*S)?{

sNodePtr?p,?q;

p?=?S-top;?/*?p指向S的頭結(jié)點(diǎn)?*/

while?(p)?{

q?=?p-next;?/*?q指向p的下一個(gè)結(jié)點(diǎn)?*/

free?(p);?/*?回收p指向的結(jié)點(diǎn)?*/

p?=?q;?/*?p移動(dòng)到下一個(gè)結(jié)點(diǎn)?*/

}?/*?直到?jīng)]有下一個(gè)結(jié)點(diǎn)?*/

}

/*?判斷鏈棧是否為空?*/

/*?初始條件:鏈棧S已存在。操作結(jié)果:若S為空鏈棧,則返回TRUE,否則返回FALSE?*/

status?stackIsEmpty?(linkStack?*S)?{

return?S-top-next?==?NULL;

}

/*?入棧?*/

/*?操作結(jié)果:在S的棧頂插入新的元素e?*/

status?push?(linkStack?*S,?elemType?e)?{

sNodePtr?p;

p?=?(sNodePtr)?malloc?(SNODE_SIZE);?/*?產(chǎn)生新結(jié)點(diǎn)?*/

if?(!p)?/*?內(nèi)存分配失敗?*/

exit?(OVERFLOW);

p-data?=?e;

p-next?=?S-top-next;?/*?將新結(jié)點(diǎn)鏈接到原棧頂?*/

S-top-next?=?p;?/*?棧頂指向新結(jié)點(diǎn)?*/

}

/*?出棧?*/

/*?操作結(jié)果:刪除S的棧頂元素,并由e返回其值?*/

status?pop?(linkStack?*S,?elemType?*e)?{

sNodePtr?p;

if?(stackIsEmpty?(S))

return?ERROR;

p?=?S-top-next;?/*?p指向鏈棧的第一個(gè)結(jié)點(diǎn)?*/

*e?=?p-data;?/*?取出數(shù)據(jù)?*/

S-top-next?=?p-next;

free?(p);?/*?刪除該結(jié)點(diǎn)?*/

if?(S-top?==?p)?/*?棧為空?*/

S-top-next?=?NULL;

return?OK;

}

/*?打印棧內(nèi)容?*/

/*?初始條件:鏈棧S已存在。操作結(jié)果:當(dāng)棧不為空時(shí),打印棧內(nèi)容并返回OK,否則返回ERROR?*/

status?printStack?(linkStack?*S)?{

sNodePtr?p;

if?(stackIsEmpty?(S))?{

puts?("The?stack?is?empty!?");

return?ERROR;

}

p?=?S-top-next;

while?(p)?{

printf?("%d\t",?p-data);

p?=?p-next;

}

putchar?('\n');

return?OK;

}

int?main?(void)?{

linkStack?S;

elemType?e;?

elemType?a,?b,?c,?d;

a?=?1;?b?=?2;?c?=?3;?d?=?4;

initStack?(S);

push?(S,?a);

push?(S,?b);

push?(S,?c);

push?(S,?d);

puts?("Push?4?elements");

printf?("S:\t");

printStack?(S);

putchar?('\n');

pop?(S,?e);

puts?("Pop?1?element");

printf?("S:\t");

printStack?(S);

destroyStack?(S);

getch?();?/*?屏幕暫留?*/

return?0;

}

如有問題,可以點(diǎn)擊頭像聯(lián)系我

C語(yǔ)言寫Pop函數(shù)取棧的出錯(cuò)

Pop函數(shù)改成這樣:

int Pop (Stack * pstack, int * pname)

{

if(pstack-top=0)

{

return 0;

}

pstack-top--;

* pname = pstack-data[pstack-top];

return 1;

}

Push函數(shù)改成這樣:

int Push (Stack * pstack, int num)

{

if(pstack-top=Stack_size)

{

printf("Push Error!");

return 0;

}

pstack-data[pstack-top]=num;

pstack-top++;

return 0;

}

試試(原來(lái)那樣當(dāng)元素達(dá)到最大數(shù)目時(shí)pstack-top就越界了)。

C語(yǔ)言 push和pop函數(shù)可以直接用嗎?

#include?stdio.h

#include?stdlib.h

#define?MAXSIZE?32

typedef?struct{

int?*elem;/*?棧的存儲(chǔ)區(qū)?*/

??int?max;???/*?棧的容量,即找中最多能存放的元素個(gè)數(shù)?*/

??int?top;???/*?棧頂指針?*/?

}Stack;

int?InitStack(Stack?*S,?int?n)?/*創(chuàng)建容量為n的空棧*/

{

S-elem?=?(int?*)malloc(n?*?sizeof(int));

if(S-elem==NULL)?return?-1;

S-max=n;

S-top?=0;?//棧頂初值0

return?0;

}

int?Push(Stack?*S,?int?item)?/*將整數(shù)item壓入棧頂*/

{

if(S-top==S-max)?{

printf("Stack?is?full!?\n");

return?-1;

}

S-elem[S-top++]?=?item;?//壓棧,棧頂加1

return?0;

}

int?StackEmpty(Stack?S)

{

return?(!S.top)?1:0;?/*判斷棧是否為空*/

}

int?Pop(Stack?*S)?/*棧頂元素出棧*/

{

if(!S-top)?{

printf("Pop?an?empty?stack!\n");

return?-1;

}

return?S-elem[--S-top]??;?//彈出棧,棧頂減1

}

void?MultibaseOutput(long?n,int?B)

{

int?m;?Stack?S;

if(InitStack(S,MAXSIZE)){

printf("Failure!\n");

return;

}

do?{

if?(Push(S,B?))?//------

{

printf("Failure!\n");

return;

}

n=?n-1?;?//--------

}while(n!=0);

while(!StackEmpty(S))?{?/*輸出B進(jìn)制的數(shù)*/

m=Pop(S);

if(m10)?printf("%d",m);?/*小于10,輸出數(shù)字*/

else?printf("%c",?m+55);?/*大于或等于10,輸出相應(yīng)的字符*/

}

printf("\n");

}


本文題目:c語(yǔ)言出棧pop函數(shù) 出棧函數(shù)pops返回的是什么值
文章鏈接:http://www.weahome.cn/article/ddgcjpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部