06链式堆栈初始化入栈出栈取栈顶元素.docxVIP

06链式堆栈初始化入栈出栈取栈顶元素.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

06链式堆栈初始化入栈出栈取栈顶元素.txt今天心情不好。我只有四句话想说。包括这句和前面的两句。我的话说完了对付凶恶的人,就要比他更凶恶;对付卑鄙的人,就要比他更卑鄙没有情人味,哪来人情味拿什么整死你,我的爱人。收银员说:没零钱了,找你两个塑料袋吧!//*************************

//*PROGRAM:链式堆栈 *

//*CONTENT :初始化,入栈,出栈,取栈顶元素 *

//*************************#includedos.h

#includeconio.h#includestdio.h#includestdlib.henumBOOL{False,True};

typedefstructLnode //定义节点结构

{char data; //数据域structLnode*next; //后向指针

}LNode,*LPoint;

voidinitial(LPoint); //初始化一个堆栈

void push_linkstack(LPoint,char); //将一个元素入栈BOOLpop_linkstack(LPoint,char); //将一个元素出栈voidprint_linkstack(LPoint);//显示栈中所有元素

voidmain()

{LPointls,p;charch,j;intflag=1;BOOLtemp;

textbackground(3); //设定屏幕颜色textcolor(15);

clrscr();

//---------------------程序解说-----------------------

printf(本程序实现链式结构的堆栈操作。\n);printf(链式堆栈不会产生溢出问题。\n);

printf(可以进行入栈,出栈,取栈顶元素等操作。\n);

//----------------------------------------------------

initial(ls); //初始化堆栈Swhile(flag)

{printf(请选择:\n);printf(1.显示栈中所有元素\n);printf(2.入栈 \n);

printf(3.出栈 \n);

printf(4.退出程序 \n);

scanf(%c,j);switch(j)

{case1:print_linkstack(ls);

break;

case2:printf(请输入要入栈的元素(一个字符):);scanf(%c,ch); //输入要入栈的字符push_linkstack(ls,ch);//入栈print_linkstack(ls);

break;

case3:temp=pop_linkstack(ls,ch); //出栈if(temp==True)

{printf(出栈一个元素:%c\n,ch);//若栈不空,显示出栈的元素print_linkstack(ls);

}

elseprintf(堆栈已空!\n);//否则堆栈为空break;

default:flag=0;printf(程序结束,按任意键退出!\n);

}

}

getch();

}

voidinitial(LPointpi)

{pi=NULL; //栈顶指针初始化为NULL

}

voidpush_linkstack(LPointpi,charch)

{//入栈,由于采用链式结构,一般不会产生栈满的情况LPointpo;

po=(LPoint)malloc(sizeof(LNode));//生成一个新节点po-data=ch; //赋值

po-next=pi; //新节点的后向指针指向原栈顶节点pi=po; //站顶指针指向新节点

}

BOOLpop_linkstack(LPointpi,chare)

{//出栈,成功返回True,并用e返回该元素值,失败返回FalseLPointpo;

po=pi;

pi=po-next; //栈顶指针指向下一个节点if(po==NULL)returnFalse; //栈已空

else{e=po-data;

returnTrue;

}

}

voidprint_linkstack(LPointp)

{//显示栈中所有元素

if(p==NULL)printf(堆栈已空!\n);//栈为空else {printf(堆栈所有元素:);

while(p!=NULL) //否则显示栈中所有元素

{printf(%c

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档